[python] Celery로 주기적 작업을 자동으로 생성하는 방법은 어떻게 되는가?

Celery란?

Celery는 분산 작업 큐 시스템으로, Python으로 작성된 비동기 작업을 처리하는 데 사용됩니다. Celery를 통해 주기적으로 실행되는 작업을 자동으로 생성할 수 있습니다.

Celery 설치하기

먼저 Celery를 설치해야 합니다. 다음과 같이 pip을 사용하여 Celery를 설치할 수 있습니다.

$ pip install celery

주기적 작업을 정의하는 방법

Celery는 beat라는 스케줄러를 제공합니다. beat는 주기적으로 실행되는 작업을 정의하고 관리합니다. 주기적 작업을 정의하기 위해서는 다음과 같은 단계를 따릅니다.

  1. Celery 프로젝트 내에 celery.py 파일을 생성합니다.
  2. 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_urlresult_backend을 자신의 환경에 맞게 수정하세요. 그리고 task-name은 작업에 대한 고유한 이름으로 변경하고, task_function은 주기적으로 실행할 작업을 하는 함수로 변경하세요.

beat 실행하기

beat를 실행하여 주기적으로 작업을 실행할 수 있습니다. 다음과 같이 명령어를 실행합니다.

$ celery -A your_app_name beat

위의 코드에서 your_app_name은 앞서 정의한 애플리케이션 이름으로 대체해야 합니다.

이제 Celery를 사용하여 주기적으로 실행되는 작업을 자동으로 생성하는 방법을 알게되었습니다. Celery는 분산 작업 처리를 위한 강력한 도구이므로, 큰 규모의 애플리케이션 개발에 유용하게 사용될 수 있습니다.

참고 자료: