傳遞參數給 Celery 任務
Celery 允許你輕鬆地將參數傳遞給你的任務。在前一篇文章中,我們已經看到了如何定義接受參數的任務,現在讓我們來看一個實際的例子:
celery_example.py
from celery import Celery
app = Celery('celery_example', broker='pyamqp://guest@localhost//')
@app.task
def add(x, y):
return x + y
在這個例子中,我們定義了一個名為 add 的 Celery 任務,該任務接受兩個參數 x 和 y,並返回它們的總和。
要呼叫這個任務並傳遞參數,只需使用 delay 方法:
from celery_example import add
result = add.delay(4, 6)
在這個例子中,我們呼叫 add 任務,並傳遞了兩個參數 4 和 6。這些參數將在任務中使用。
處理 Celery 任務的結果
當你使用 delay 方法執行 Celery 任務時,它會立即返回一個 AsyncResult 對象,這個對象代表了執行中的任務。你可以使用 get 方法來獲取任務的結果:
result = add.delay(4, 6)
result_value = result.get()
print(result_value)
在這個例子中,result.get() 會等待任務完成,然後返回結果,我們將結果打印出來。當你執行這個代碼時,你應該會看到 10 被打印出來,這是 add 任務的返回值。