0
因此,我現在一直在使用celery v3.x並考慮從正式遷移到v4之後遷移到v4。現在,我正在使用通過PyPI提供的v4.0.2。有兩個版本數不匹配,但讓我困惑的一個是這樣的:使用redis後端的芹菜v4組任務行爲
這是我的任務文件:
from celery import group, chord
from worker import app
@app.task(name='task')
def task(i):
return i
@app.task(name='remaining')
def dummy(result):
print result
@app.task(name='mainTask')
def mainTask():
groupTask = group([task.s(i) for i in range(0,10)])
job = chord(groupTask, dummy.s())()
return job
當我打電話mainTask
,隨後組任務也得到執行,但當我嘗試通過dummy
打印此任務的結果時,結果順序變得混亂。輸出示例如下:
[0, 1, 2, 3, 4, 8, 6, 9, 7, 5]
奇怪的是,只有當結果後端是redis時纔會發生這種情況。在使用amqp時,結果將按照如下精確順序顯示:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
P.S.,此行爲在舊版本的芹菜中不存在。 Redis以及amqp以正確的順序返回結果。有什麼我失蹤?