Celery는 Python으로 작성된 분산 작업 큐 시스템입니다. Celery를 사용하면 여러 작업을 비동기적으로 처리할 수 있습니다. Celery에서는 작업이 대기열에 추가된 순서대로 처리되기 때문에 작업의 우선순위를 변경하려면 몇 가지 단계를 따라야 합니다.
1. 작업 우선순위 설정하기
Celery에서는 작업에 우선순위를 할당할 수 있는 priority
라는 속성을 사용합니다. 일반적으로 작업은 0부터 9까지의 우선순위 값을 가질 수 있습니다.
예를 들어, 작업의 우선순위를 설정하려면 다음과 같은 방법을 사용할 수 있습니다:
from celery import Celery
app = Celery('myapp')
@app.task(priority=5)
def my_task():
# 작업 내용
pass
위의 코드에서 my_task
함수에 priority
속성을 설정하여 작업의 우선순위를 5로 설정했습니다.
2. 작업 처리 순서 변경하기
Celery에서는 작업을 처리하는 순서를 변경할 수 있습니다. 기본적으로 Celery는 작업을 추가한 순서대로 FIFO(First-In-First-Out) 방식으로 처리합니다. 그러나 우선순위를 사용하여 작업을 처리하는 순서를 변경할 수 있습니다.
작업 우선순위를 변경하려면 다음과 같은 방법을 사용할 수 있습니다:
from celery import Celery
app = Celery('myapp')
@app.task(priority=1)
def high_priority_task():
# 고우선 작업 내용
pass
@app.task(priority=9)
def low_priority_task():
# 저우선 작업 내용
pass
위의 코드에서 high_priority_task
함수에는 우선순위 1을, low_priority_task
함수에는 우선순위 9를 설정하여 고우선 작업을 우선 처리하도록 설정했습니다.
3. Celery 설정 업데이트하기
작업 우선순위를 변경한 후에는 Celery 설정을 업데이트해야 합니다. Celery 설정 파일 (일반적으로 celery.py
또는 celeryconfig.py
와 같은 이름으로 저장됩니다)에 다음과 같은 설정을 추가해야 합니다:
CELERY_TASK_PROTOCOL = 1
CELERY_DISABLE_RATE_LIMITS = True
위의 설정은 Celery가 작업 우선순위를 지원하는 프로토콜을 사용하고 작업 우선순위 기능을 비활성화하도록 설정합니다.
참고 문서
작업 우선순위 설정은 Celery의 강력한 기능 중 하나입니다. 이를 통해 작업을 효율적으로 관리하고 우선순위에 따라 작업을 처리할 수 있습니다.