[python] Django와 Celery 연동 방법은 어떻게 되는가?

목차

Celery란?

Celery는 분산 작업 큐 시스템으로, 비동기 작업을 처리하기 위해 사용됩니다. Django와 함께 사용하면 웹 어플리케이션에서 백그라운드 작업을 수행하는 데에 효과적입니다.

Django와 Celery 연동하기

Django와 Celery를 연동하기 위해서는 다음의 단계를 따르면 됩니다.

  1. Celery 설치하기

    pip install celery
    
  2. 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를 메시지 브로커로 사용하고 있습니다. 필요에 따라 다른 메시지 브로커를 사용할 수도 있습니다.

  3. Celery worker 실행하기

    Celery worker를 실행하려면 다음의 명령어를 실행합니다:

    celery -A myproject worker --loglevel=info
    

    -A 옵션은 Celery 프로젝트를 지정하는 것이고, --loglevel 옵션은 로깅 레벨을 설정하는 것입니다.

  4. Celery 작업 정의하기

    Celery 작업은 Django에서 일반적인 함수로 구현됩니다. 작업을 정의하기 위해서는 아래와 같은 예제 코드를 참고하세요:

    # tasks.py
    
    from celery import shared_task
    
    @shared_task
    def add(x, y):
        return x + y
    

    이 예제에서는 add() 함수가 Celery 작업으로 설정되어 있습니다.

  5. Celery 작업 실행하기

    Django 어플리케이션에서 Celery 작업을 실행하려면 다음과 같이 작업을 호출하면 됩니다:

    from myproject.tasks import add
    
    result = add.delay(3, 5)
    

    위의 예제에서 add() 작업을 실행하고 결과를 result 변수에 저장한 후, 필요에 따라 결과를 확인하거나 처리할 수 있습니다.

이제 Django와 Celery가 성공적으로 연동되었습니다! 추가로 필요한 설정이나 사용법은 공식 문서를 참고하시기 바랍니다.

참고 자료: