[python] Celery의 강력한 기능 중 하나인 task 체인과 체인 예시는 어떤 것이 있는가?
Celery의 체인 기능은 여러 개의 작업을 순차적으로 실행할 수 있는 강력한 기능입니다. 이를 통해 작업의 흐름을 자세하게 제어하고 조건부로 작업을 실행할 수 있습니다.
다음은 Celery 체인을 사용한 예시 코드입니다.
from celery import Celery, chain
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
@app.task
def subtract(x, y):
return x - y
@app.task
def multiply(x, y):
return x * y
@app.task
def divide(x, y):
return x / y
# 체인으로 연결된 작업들을 정의합니다.
task_chain = chain(
add.s(5, 3),
subtract.s(10),
multiply.s(2),
divide.s(4)
)
# 체인을 실행합니다.
result = task_chain.delay()
# 결과 출력
print(result.get())
위 코드에서는 add
, subtract
, multiply
, divide
라는 네 개의 작업을 정의하고, 체인으로 연결하여 실행합니다. 각 작업은 이전 작업의 결과를 사용하여 실행되기 때문에 작업들이 순차적으로 실행됩니다.
위 예시는 먼저 5와 3을 더한 후, 10을 뺀 다음, 2를 곱하고 마지막으로 4로 나누는 작업을 수행합니다. 마지막 작업의 결과가 최종 결과로 반환됩니다.