[python] Celery의 스케줄링 설정 방법은 어떻게 되는가?

Celery는 Python에서 사용되는 분산 작업 큐 시스템이며, 스케줄링 기능도 제공합니다. Celery를 사용하여 작업을 예약하려면 다음 단계를 따를 수 있습니다.

  1. Celery 설치하기:
pip install celery
  1. 스케줄러 설정 파일 작성:

Celery는 스케줄링을 위한 설정 파일을 필요로 합니다. 이 설정 파일에는 Celery가 작업을 예약할 위치와 예약할 작업에 대한 정보가 저장됩니다. celery.py라는 파일을 생성하고 아래와 같이 작성해보세요.

from celery import Celery
from datetime import timedelta

app = Celery('tasks', backend='rpc://', broker='pyamqp://guest@localhost//')

# 스케줄링할 작업 정의
app.conf.beat_schedule = {
    'task-name': {
        'task': 'tasks.some_task',  # 예약할 작업의 모듈 경로와 함수 이름
        'schedule': timedelta(seconds=10),  # 작업 예약 주기
    },
}

# 작업 함수 정의
@app.task
def some_task():
    print("Scheduled task executed!")

  1. Celery Worker 실행:

작업을 예약한 뒤에는 Celery Worker를 실행해야 합니다. 아래 커맨드를 실행하여 Celery Worker가 스케줄된 작업을 수행할 수 있도록 해주세요.

celery -A celery_app worker --loglevel=info
  1. Celery Beat 실행:

Celery Beat는 스케줄된 작업을 주기적으로 예약하고 Celery Worker에 전달하는 역할을 합니다. 아래 커맨드를 실행하여 Celery Beat를 실행해보세요.

celery -A celery_app beat --loglevel=info

위의 단계를 따르면 Celery를 사용하여 Python 코드에서 작업을 예약할 수 있습니다. 스케줄링된 작업은 Celery Beat가 주기적으로 확인하고 작업 예약 주기에 따라 Celery Worker에 전달되어 실행됩니다.

참고 문서: