[python] Celery의 지연된 작업(delayed task) 실행 방법은 어떻게 되는가?
먼저, Celery를 설치해야 합니다. 아래의 명령을 사용하여 Celery를 설치할 수 있습니다.
pip install celery
Celery를 설치한 후에는 Celery를 구성해야 합니다. Celery 구성 파일인 celery.py
를 만들고 다음과 같이 설정합니다.
from celery import Celery
# Celery 인스턴스를 생성합니다.
app = Celery('myapp', broker='redis://localhost:6379/0') # Redis Broker를 사용하는 경우
# Celery 설정을 지정합니다.
app.conf.update(
result_backend='redis://localhost:6379/0' # 작업 결과를 저장할 Redis Backend를 지정하는 경우
)
# 작업을 처리할 태스크를 정의합니다.
@app.task
def add(x, y):
return x + y
이제 위에서 정의한 add
함수가 포함된 파일을 실행합니다.
celery -A celery_app worker --loglevel=info
위 명령을 실행하면 Celery 워커가 시작되고 작업 대기열을 모니터링하게 됩니다.
이제 Python 코드에서 Celery를 사용하여 지연된 작업을 실행할 수 있습니다. 아래의 코드는 add
태스크를 지연시켜 실행하는 예제입니다.
from celery_app import add
result = add.delay(4, 6) # add 태스크를 지연시켜 실행
print(result.ready()) # 작업이 완료되었는지 여부를 확인
print(result.get()) # 작업 결과를 가져옴
위의 코드에서 add.delay(4, 6)
는 add
태스크를 비동기로 실행하라는 의미입니다. delay
메서드는 작업을 실행하기 위해 Celery에게 요청을 보내고, 결과를 반환합니다. ready()
메서드를 사용하여 작업이 완료되었는지 여부를 확인할 수 있으며, get()
메서드를 사용하여 작업 결과를 가져올 수 있습니다.
이제 Celery를 사용하여 지연된 작업을 실행하는 방법을 알게 되었습니다. Celery는 대규모 애플리케이션에서 비동기 작업을 처리하는 데 매우 유용한 도구입니다.
참고 링크:
- Celery 공식 문서: https://docs.celeryproject.org/
- Celery GitHub 저장소: https://github.com/celery/celery