python - 明确失败 celery 任务

标签 python celery

如果条件不满足,我想明确地让任务失败。示例:

@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(它卡在那里)。

我错过了什么吗?我如何使 celery 任务失败?

最佳答案

要使任务失败,只需说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

关于python - 明确失败 celery 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44993313/

相关文章:

python - 使用 .strip() python pandas 删除空格而无意中删除了数字

python - ModelChoiceField 查询集到另一个 OneToOne 相关表

mysql - 为什么从 Django pre_save 信号触发的 celery 任务永远看不到对象

redis - Celery 在没有代理和后端运行的情况下工作

django - 我无法在我的 Mac 上启动 rabbitmq

python - 同时 Celery 任务共享一个公共(public)对象(数据库连接)

redis - celery 任务不工作

python - tkinter( python ): assign class method to a key

Python mysql建表错误

Python 输出括号