목차
Celery란?
Celery는 분산 작업 큐 시스템으로, 비동기 작업을 처리하기 위해 사용됩니다. Django와 함께 사용하면 웹 어플리케이션에서 백그라운드 작업을 수행하는 데에 효과적입니다.
Django와 Celery 연동하기
Django와 Celery를 연동하기 위해서는 다음의 단계를 따르면 됩니다.
-
Celery 설치하기
pip install celery
-
Django 프로젝트에 Celery 설정 추가하기
Django 프로젝트의
settings.py
파일에 다음과 같이 Celery 설정을 추가합니다.# settings.py # Celery 설정 CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' # Celery 시간대 설정 CELERY_TIMEZONE = 'Asia/Seoul' # Celery를 Django 프로젝트로 로드 import celery celery = celery.Celery('myproject') celery.config_from_object('django.conf:settings', namespace='CELERY') celery.autodiscover_tasks()
위 설정에서는 Redis를 메시지 브로커로 사용하고 있습니다. 필요에 따라 다른 메시지 브로커를 사용할 수도 있습니다.
-
Celery worker 실행하기
Celery worker를 실행하려면 다음의 명령어를 실행합니다:
celery -A myproject worker --loglevel=info
-A
옵션은 Celery 프로젝트를 지정하는 것이고,--loglevel
옵션은 로깅 레벨을 설정하는 것입니다. -
Celery 작업 정의하기
Celery 작업은 Django에서 일반적인 함수로 구현됩니다. 작업을 정의하기 위해서는 아래와 같은 예제 코드를 참고하세요:
# tasks.py from celery import shared_task @shared_task def add(x, y): return x + y
이 예제에서는
add()
함수가 Celery 작업으로 설정되어 있습니다. -
Celery 작업 실행하기
Django 어플리케이션에서 Celery 작업을 실행하려면 다음과 같이 작업을 호출하면 됩니다:
from myproject.tasks import add result = add.delay(3, 5)
위의 예제에서
add()
작업을 실행하고 결과를result
변수에 저장한 후, 필요에 따라 결과를 확인하거나 처리할 수 있습니다.
이제 Django와 Celery가 성공적으로 연동되었습니다! 추가로 필요한 설정이나 사용법은 공식 문서를 참고하시기 바랍니다.
참고 자료:
- Celery 공식 문서: http://docs.celeryproject.org
- Django 공식 문서: https://docs.djangoproject.com