[python] Celery로 주기적 작업을 자동으로 생성하는 방법은 어떻게 되는가?
Celery란?
Celery는 분산 작업 큐 시스템으로, Python으로 작성된 비동기 작업을 처리하는 데 사용됩니다. Celery를 통해 주기적으로 실행되는 작업을 자동으로 생성할 수 있습니다.
Celery 설치하기
먼저 Celery를 설치해야 합니다. 다음과 같이 pip
을 사용하여 Celery를 설치할 수 있습니다.
$ pip install celery
주기적 작업을 정의하는 방법
Celery는 beat
라는 스케줄러를 제공합니다. beat
는 주기적으로 실행되는 작업을 정의하고 관리합니다. 주기적 작업을 정의하기 위해서는 다음과 같은 단계를 따릅니다.
- Celery 프로젝트 내에
celery.py
파일을 생성합니다. celery.py
파일 내에Celery
객체를 생성하고 주기적 작업을 설정합니다.
from celery import Celery
# Celery 객체 생성
app = Celery('your_app_name')
# 배포 환경 설정
app.conf.update(
broker_url='redis://localhost:6379/0',
result_backend='redis://localhost:6379/0'
)
# 주기적 작업 정의
app.conf.beat_schedule = {
'task-name': {
'task': 'your.task.module.task_function',
'schedule': 10.0, # 작업 실행 주기 (초 단위)
},
}
위의 코드에서 your_app_name
을 원하는 애플리케이션 이름으로 변경하고, broker_url
및 result_backend
을 자신의 환경에 맞게 수정하세요. 그리고 task-name
은 작업에 대한 고유한 이름으로 변경하고, task_function
은 주기적으로 실행할 작업을 하는 함수로 변경하세요.
beat 실행하기
beat
를 실행하여 주기적으로 작업을 실행할 수 있습니다. 다음과 같이 명령어를 실행합니다.
$ celery -A your_app_name beat
위의 코드에서 your_app_name
은 앞서 정의한 애플리케이션 이름으로 대체해야 합니다.
이제 Celery를 사용하여 주기적으로 실행되는 작업을 자동으로 생성하는 방법을 알게되었습니다. Celery는 분산 작업 처리를 위한 강력한 도구이므로, 큰 규모의 애플리케이션 개발에 유용하게 사용될 수 있습니다.
참고 자료: