2017-07-09 52 views
1

如果條件不符合,我想顯式地使任務失敗。例如:明確地失敗芹菜任務

@app.task(bind=True, name="task.my_task", max_retries=2) 
def my_task(self, filename): 
    result = get_result(filename) 
    if result is None: 
     self.update_state(task_id=self.request.id, state=states.FAILURE, meta="result is None") 
     raise Ignore() 
    return result 

日誌說 「任務task.my_task [855c1cbc-e894-409f-AF29-d70a35d86e34]忽略」

但是,這是行不通的。當我看着task.state時,它處於PENDING狀態。花說my_task state == STARTED(它卡在那裏)。

我錯過了什麼嗎?我如何失敗芹菜任務?

回答

0

要失敗的任務,只是說let_it_fail

@app.task(bind=True, name="task.my_task", max_retries=2) 
def my_task(self, filename): 
    result = get_result(filename) 
    if result is None: 
     self.update_state(task_id=self.request.id, state=states.FAILURE, meta="result is None") 
     raise let_it_fail 
    return result