[python] Celery의 시간 기반 작업 예약은 어떤 방법으로 사용되는가?
Celery는 Python으로 작성된 분산 작업 큐 시스템으로, 비동기 작업을 쉽게 처리할 수 있는 강력한 도구입니다. Celery를 사용하면 작업을 예약하고 지정된 시간에 실행할 수 있습니다. 이 기능은 시간 기반 작업 예약(Timed Task Scheduling)이라고도 알려져 있습니다.
Celery에서 시간 기반 작업 예약을 사용하려면 다음 단계를 따르면 됩니다:
-
Celery를 설치합니다. pip를 사용하여
celery
패키지를 설치합니다:pip install celery
-
Celery 프로젝트를 생성합니다. 프로젝트 디렉토리에서
celery.py
파일을 만들고 다음 코드를 작성합니다:from celery import Celery app = Celery('myapp', broker='redis://localhost:6379/0') @app.task def my_task(): print("Hello, Celery!")
위의 코드에서
broker
매개변수는 Celery가 사용할 메시지 브로커를 설정합니다. 여기서는 Redis를 사용하도록 설정했습니다. -
작업을 예약하는 방법은 다양한 방법이 있습니다. 가장 일반적인 방법은
apply_async
메서드를 사용하는 것입니다. 예를 들어,my_task
함수를 5초 후에 예약하려면 다음과 같이 작성할 수 있습니다:from datetime import timedelta from celery import current_app current_app.send_task('myapp.my_task').apply_async(countdown=5)
countdown
매개변수는 작업이 예약된 후 몇 초 후에 실행될지를 설정합니다.
이제 Celery를 사용하여 시간 기반 작업 예약을 쉽게 구현할 수 있습니다. Celery의 문서를 참조하면 더 많은 옵션과 기능을 확인할 수 있습니다.
참고 자료:
- Celery 공식 문서: https://docs.celeryproject.org/
- Celery 예제 코드: https://github.com/celery/celery/tree/master/examples