[python] Celery의 스케줄링 설정 방법은 어떻게 되는가?
Celery는 Python에서 사용되는 분산 작업 큐 시스템이며, 스케줄링 기능도 제공합니다. Celery를 사용하여 작업을 예약하려면 다음 단계를 따를 수 있습니다.
- Celery 설치하기:
pip install celery
- 스케줄러 설정 파일 작성:
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!")
- Celery Worker 실행:
작업을 예약한 뒤에는 Celery Worker를 실행해야 합니다. 아래 커맨드를 실행하여 Celery Worker가 스케줄된 작업을 수행할 수 있도록 해주세요.
celery -A celery_app worker --loglevel=info
- Celery Beat 실행:
Celery Beat는 스케줄된 작업을 주기적으로 예약하고 Celery Worker에 전달하는 역할을 합니다. 아래 커맨드를 실행하여 Celery Beat를 실행해보세요.
celery -A celery_app beat --loglevel=info
위의 단계를 따르면 Celery를 사용하여 Python 코드에서 작업을 예약할 수 있습니다. 스케줄링된 작업은 Celery Beat가 주기적으로 확인하고 작업 예약 주기에 따라 Celery Worker에 전달되어 실행됩니다.
참고 문서: