2017-07-09 4 views
1

Je veux échouer explicitement une tâche si une condition ne se réalise pas. Exemple:Échec explicite d'une tâche de céleri

@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 

journaux disent "Tâche task.my_task [855c1cbc-e894-409f-AF29-d70a35d86e34] ignoré"

Cependant, cela ne fonctionne pas. Quand je regarde task.state, il est en état PENDING. la fleur dit my_task state == STARTED (et il reste coincé là).

Ai-je raté quelque chose? Comment échouer une tâche de céleri?

Répondre

0

Pour faire échouer la tâche, juste dire 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