Explicitly fail a celery task

Viewed 1531

I want to explicitly fail a task if a condition won't meet. Example:

@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 say "Task task.my_task[855c1cbc-e894-409f-af29-d70a35d86e34] ignored"

However, this doesn't work. When I look at task.state, it's in PENDING status. flower says my_task state == STARTED (and it gets stuck there).

Am I missing something? How do I fail a celery task?

1 Answers
Related