[python] Celery task의 인자 전달 방법은 어떻게 되는가?
Celery는 분산 작업 큐 시스템으로, 백그라운드에서 비동기로 작업을 수행할 수 있는 기능을 제공합니다. Celery task를 실행할 때, task에 인자를 전달하는 방법에 대해 알아보겠습니다.
Celery task에 인자를 전달하는 가장 기본적인 방법은 task 함수를 호출할 때 인자를 함께 전달하는 것입니다. 예를 들어, 다음과 같이 task 함수와 해당 함수를 호출하는 코드가 있다고 가정해보겠습니다.
from celery import Celery
app = Celery('tasks', broker='redis://localhost:6379/0')
@app.task
def add(x, y):
return x + y
result = add.delay(3, 5)
위 코드에서 add
라는 Celery task는 x
와 y
인자를 받아 더한 값을 반환하는 간단한 예제입니다. add.delay(3, 5)
에서 delay
메서드를 사용하여 Celery가 비동기적으로 add
task를 실행하고 인자로 3과 5를 전달합니다.
만약 인자를 키워드 인자로 전달하려면 다음과 같이 호출할 수 있습니다.
result = add.delay(x=3, y=5)
Celery는 인자를 직렬화하여 네트워크를 통해 전송하고, 해당 작업을 수신할 때 다시 역직렬화하여 인자를 추출합니다. 인자는 일반적인 파이썬 객체일 수도 있고, Celery에서 지원하는 시리얼라이저를 사용하여 직렬화할 수도 있습니다.
Celery는 인자 전달을 통해 다양한 유형의 작업을 수행할 수 있는 유연성을 제공합니다. 필요한 인자를 사용하여 task를 실행하고 결과를 비동기적으로 처리할 수 있습니다.
더 자세한 내용은 Celery 문서를 참조하시기 바랍니다.