목차
소개
주기적으로 실행되는 작업을 예약해야 하는 다양한 상황이 있습니다. 이를 위해 프로그래머들은 다양한 방법을 사용합니다. 그 중 하나는 Celery라는 분산 작업 큐를 사용하는 것입니다. Celery를 사용하면 주기적인 작업을 빠르고 효율적으로 예약할 수 있습니다.
Celery란 무엇인가?
Celery는 Python으로 개발된 분산 작업 큐입니다. 이를 사용하면 작업을 비동기적으로 실행하고 병렬로 처리할 수 있습니다. Celery는 작업을 큐에 넣고 워커(worker)가 해당 작업을 처리하도록 할 수 있습니다.
Celery 설치 및 구성
Celery를 사용하기 위해서는 먼저 Celery 패키지를 설치해야 합니다. 다음 명령을 사용하여 Celery를 설치할 수 있습니다.
pip install celery
Celery를 구성하려면 먼저 celery.py
라는 이름의 파이썬 스크립트를 만들어야 합니다. 그리고 아래와 같이 작성합니다.
from celery import Celery
app = Celery('myapp', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
위의 예제에서는 Redis를 사용하여 Celery의 메시지 브로커로 설정했습니다. 필요에 따라 메시지 브로커를 변경할 수 있습니다.
주기적인 작업 예약
Celery를 사용하여 작업을 주기적으로 예약하기 위해서는 Celery Beat
를 설정해야 합니다. Celery Beat
는 주기적인 작업 예약을 관리하는 역할을 담당합니다.
Celery Beat
를 설정하려면 celery.py
파일에 다음 코드를 추가해야 합니다.
from celery import Celery
from celery.schedules import crontab
app = Celery('myapp', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
app.conf.beat_schedule = {
'add-every-30-seconds': {
'task': 'myapp.add',
'schedule': 30.0,
'args': (16, 16),
},
}
위의 예제에서는 add
함수를 매 30초마다 실행하도록 설정했습니다. 필요에 따라 주기적으로 실행할 함수와 스케줄을 변경할 수 있습니다.
결론
Celery를 사용하면 주기적인 작업을 간편하게 예약할 수 있습니다. Celery를 사용하여 작업을 비동기적으로 실행하고 병렬로 처리할 수 있으므로, 성능과 확장성을 향상시킬 수 있습니다.