2013-10-11 79 views
3

從我所看到的,任務狀態,完全取決於對CELERY_TASK_RESULT_EXPIRES設置的值 - 如果我這個區間內檢查任務狀態後任務執行完畢,返回的狀態:芹菜任務狀態取決於CELERY_TASK_RESULT_EXPIRES

AsyncResult(task_id).state 

是正確的。如果不是,該州將不會更新,並將永遠保持不變。

任何人能解釋我爲什麼會發生這種情況?這是一個功能還是錯誤? 爲什麼任務狀態取決於結果到期時間,即使我忽略結果?

(芹菜版本:3.0.23,結果後臺:AMQP)

回答

4

國家和結果是一樣的。結果後端最初用於存儲返回值,然後擴展到存儲任意狀態。術語結果不再充分,因爲它意味着任務已經完成。 ignore_result應該是ignore_state,但我們還沒有機會重新命名。我有計劃清理這裏使用的術語,但要向後兼容需要一些時間。

+0

ignore_state聽起來很尷尬順便說一句,也許有人可以想出一個更好的名字 – asksol

+0

是的,我認爲他們正在以同樣的方式返回......雖然result_expires設置會影響人們可以得到狀態,即使忽略結果。我理解背後的理由。現在我的問題是,我不是真的對結果感興趣,但我對狀態感興趣... – Clara

+0

p.s.你可以把它稱爲update_states或不便,而不是ignore_states – Clara