본문 바로가기
파이썬 웹 개발

[ Django ] Django 1.11 버전 Celery 연결하기

by 배추잠자리 2023. 4. 12.
반응형

오라클 환경때문에 1버전의 장고를 써야하는 경우가 있습니다.

이 때 Celery를 붙일 때 버전 문제가 많습니다.

 

1.11 버전에서 설정의 차이는 크게 없지만, 버전의 문제가 많습니다.

종속되었거나 혹은 연결되어있는 라이브러리의 버전들도 많아서

하위와 같이 따라해보시면 될 것 같습니다.

 

 

[ 개발 환경 ]

mac m1

python 3.8

django 1.11.29

 

[ 설치 라이브러리 ]

celery==4.4.7
django-celery-results==1.0.2
kombu==4.6.11
vine==1.3.0
redis==3.5.3
billiard==3.6.4.0
Django==1.11.29

 

 

[ config/settings/base.py ]

CELERY_ALWAYS_EAGER = True
CELERY_BROKER_URL = 'redis://127.0.0.1:6379'
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379'
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TIMEZONE = 'Asia/Seoul'

 

 

[ config/settings/celery.py ] 

import os
from celery import Celery
from django.conf import settings

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings.prod')

app = Celery('config', broker=settings.CELERY_BROKER_URL, backend=settings.CELERY_RESULT_BACKEND)
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()

@app.task(bind=True)
def debug_task(self):
    print(f'Request: {self.request!r}')

 

config 등 경로설정은 본인의 개발환경에 맞춰서 수정해주시면 됩니다~!

 

 

[ config/__init__.py ] 


from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app

__all__ = ['celery_app']

 

 

[ api/tasks.py ]

from __future__ import absolute_import, unicode_literals

from celery import shared_task


@shared_task
def test():
    print('test')
    return "success"

 

그럼,

redis-server 로 redis를 실행한 후

celery -A config worker -l info 를 통해 Celery가 실행됨을 확인할 수 있습니다.

 

Django 1.11

Mac m1 또는 Ubuntu 22.04

Python 3.8 

 

 

안되시거나~

설정에 어려움이 있으면 언제든지 댓글 주세요~

 

 

반응형

댓글