2016-12-06 75 views
1

沒有結果後端,我該如何等待Celery任務完成?當沒有使用後端結果時,.collect() and .get()都會失敗。我不需要任務的結果,只需等待它完成即可。等待Celery任務完成而沒有結果後端

>>> add.delay(1, 2).get() 
Traceback (most recent call last): 
    File "<console>", line 1, in <module> 
    File "/usr/local/lib/python2.7/site-packages/celery/result.py", line 169, in get 
    no_ack=no_ack, 
    File "/usr/local/lib/python2.7/site-packages/celery/backends/base.py", line 616, in _is_disabled 
    'No result backend configured. ' 
NotImplementedError: No result backend configured. Please see the documentation for more information. 

回答

2

基本上任務需要與客戶端溝通,它已完成。

結果後端是芹菜用來傳達任務狀態的機制。如果它被禁用,你必須實現你自己的通信機制。

你可以在商店裏設置一個標誌(像redis這樣輕量級的東西會很好),或者任務可以寫入共享掛載,或者你可以實現任務和客戶端可以交談的輕量級web服務。

但是,所有這些都非常重複後端的結果(特別是第一個建議)。