[python] Celery task의 주기적 실행은 어떻게 설정하는가?

Celery는 Python으로 작성된 분산 작업 큐 시스템입니다. Celery를 사용하여 주기적으로 실행되는 작업을 설정하려면 다음과 같은 단계를 따를 수 있습니다.

  1. Celery 설정 파일에 주기적으로 실행될 작업을 정의합니다. 예를 들어, tasks.py 파일에 아래와 같은 작업을 정의합니다.
from celery import Celery

app = Celery('myapp', broker='redis://localhost:6379/0')

@app.task
def my_periodic_task():
    print("주기적으로 실행되는 작업입니다.")
  1. Celery beat을 설정하여 주기적 호출을 관리합니다. 이를 위해 celery.py 파일에 아래와 같은 작업을 추가합니다.
from celery import Celery
from celery.schedules import crontab

app = Celery('myapp', broker='redis://localhost:6379/0')

app.conf.beat_schedule = {
    'my-periodic-task': {
        'task': 'myapp.tasks.my_periodic_task',
        'schedule': crontab(minute='*/10'),  # 매 10분마다 실행
    },
}
  1. Celery beat을 실행하여 주기적으로 호출할 작업을 예약합니다.
celery -A myapp beat

위의 예제에서는 my_periodic_task가 매 10분마다 실행되도록 설정되었습니다. 추가적으로, Celery beat을 사용하여 다양한 시간 기반 스케줄을 설정할 수 있습니다. 자세한 내용은 Celery 공식 문서를 참조하시기 바랍니다.

참고 문서: