[python] Celery의 시간 기반 작업 예약은 어떤 방법으로 사용되는가?

Celery는 Python으로 작성된 분산 작업 큐 시스템으로, 비동기 작업을 쉽게 처리할 수 있는 강력한 도구입니다. Celery를 사용하면 작업을 예약하고 지정된 시간에 실행할 수 있습니다. 이 기능은 시간 기반 작업 예약(Timed Task Scheduling)이라고도 알려져 있습니다.

Celery에서 시간 기반 작업 예약을 사용하려면 다음 단계를 따르면 됩니다:

  1. Celery를 설치합니다. pip를 사용하여 celery 패키지를 설치합니다:

    pip install celery
    
  2. 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를 사용하도록 설정했습니다.

  3. 작업을 예약하는 방법은 다양한 방법이 있습니다. 가장 일반적인 방법은 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의 문서를 참조하면 더 많은 옵션과 기능을 확인할 수 있습니다.

참고 자료: