python - Celery 任务状态取决于 CELERY_TASK_RESULT_EXPIRES

标签 python rabbitmq celery amqp

据我所知,任务状态完全取决于为 CELERY_TASK_RESULT_EXPIRES 设置的值 - 如果我在任务完成执行后在此间隔内检查任务状态,则状态返回:

AsyncResult(task_id).state

是正确的。否则,状态将不会更新,并将永远保持 PENDING。

谁能解释一下为什么会这样?这是功能还是错误? 为什么任务状态取决于结果到期时间,即使我忽略了结果?

(Celery 版本:3.0.23,结果后端:AMQP)

最佳答案

状态和结果是一样的。结果后端最初用于存储返回值,然后扩展为存储任意状态。结果一词不再充分,因为它意味着任务已经完成。 ignore_result 应该是 ignore_state,但我们还没有机会重命名它。我计划清理此处使用的术语,但需要一些时间才能向后兼容。

关于python - Celery 任务状态取决于 CELERY_TASK_RESULT_EXPIRES,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19316133/

相关文章:

node.js - RabbitMQ 在 ACK 后顺序接收消息

python - celery 如何终止并重新启动任务

python - 从..utils.fixes导入rankdata导入错误: cannot import name 'rankdata' MongoDB

python - 为什么我可以用两种不同的方式导入 PIL(以及为什么这样做会出现问题)?

python - 用 Python 绘制实时数据

java - RabbitMQ - 获取排队消息的总数

python - 在pytest中模拟一个连接类

python - 用 ply 转义正则表达式中的空格?

python - 在处理 Flask 请求的同一服务器上运行 Celery 任务

python - 在 Celery 中获取 worker ID