2017-07-09 2 views
1

Ich möchte eine Aufgabe explizit fehlschlagen, wenn eine Bedingung nicht erfüllt wird. Beispiel:Explizit eine Sellerie Task fehlschlagen

@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 

Logs sagen

jedoch "Task task.my_task [855c1cbc-e894-409f-AF29-d70a35d86e34] ignoriert", das funktioniert nicht. Wenn ich mir task.state anschaue, ist es im Status PENDING. Blume sagt my_task state == STARTED (und es bleibt dort stecken).

Fehle ich etwas? Wie versage ich eine Sellerieaufgabe?

Antwort

0

Um die Aufgabe zu scheitern, sagen Sie einfach 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 
Verwandte Themen