[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는 xy 인자를 받아 더한 값을 반환하는 간단한 예제입니다. add.delay(3, 5)에서 delay 메서드를 사용하여 Celery가 비동기적으로 add task를 실행하고 인자로 3과 5를 전달합니다.

만약 인자를 키워드 인자로 전달하려면 다음과 같이 호출할 수 있습니다.

result = add.delay(x=3, y=5)

Celery는 인자를 직렬화하여 네트워크를 통해 전송하고, 해당 작업을 수신할 때 다시 역직렬화하여 인자를 추출합니다. 인자는 일반적인 파이썬 객체일 수도 있고, Celery에서 지원하는 시리얼라이저를 사용하여 직렬화할 수도 있습니다.

Celery는 인자 전달을 통해 다양한 유형의 작업을 수행할 수 있는 유연성을 제공합니다. 필요한 인자를 사용하여 task를 실행하고 결과를 비동기적으로 처리할 수 있습니다.

더 자세한 내용은 Celery 문서를 참조하시기 바랍니다.