php - 如何获取 Celery 中失败的任务?

标签 php python ubuntu celery flower

我正在使用 celery 来处理一些任务。我可以看到有多少事件或计划等,但我无法找到任何方法来查看失败的任务。 Flower 确实向我显示了状态,但前提是它在任务启动和失败时正在运行。是否有任何命令可以获取所有失败的任务(状态:失败)?

我确实有创建任务时的任务 ID。但是有数百万个。所以即使有办法通过任务ID查也无法一一查。但是如果有这样的命令,请告诉我。

最佳答案

Celery 不容易找到失败的任务,但是 Flower (主要的 Celery 管理 Web 应用程序)确实简化了这一点。即使在任务完成后,它也会保留任务 ID 的记录,并且有一个 API 可让您仅查找失败的任务。

Flower 相当基本的 HTTP API 包括 /api/tasks endpoint - 您可以使用 /api/tasks?state=FAILURE 仅显示失败的任务,然后解析 JSON 以提取您需要的内容。内容类似于您在 Web API 中获得的内容,使用 curl 制作原型(prototype)和使用 jq 格式化/过滤很容易:

curl -s 'http://localhost:5555/api/tasks?state=FAILURE&limit=5' | jq . | less

Flower 当然需要安装和运行。

由于您有数百万个已完成的任务,您可能需要在数据存储中捕获失败的任务信息以便高效访问 - 也许 Flower 会有所帮助。或者您可以在 Celery 中尝试自定义失败处理程序,以捕获刚刚失败的任务信息 - 请参阅 this answer .

关于php - 如何获取 Celery 中失败的任务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26626946/

相关文章:

c++ - Linux ext3 和 ext4 文件 - 兼容性问题

php - HTML 按钮在页面刷新时移动?

php - 获取字符串中的最后一个整数

python - Bokeh (Python): Format DateTime in Hover tooltip

python - 在python中提取不匹配的字符串

shell - 创建一个 shell 脚本以在 mongodb 中自动导出 csv

ubuntu - 错误 0 升级,0 新安装,0 删除和 474 未升级

php - 从 2 个数组中获取唯一值

php - 工厂方法的建议

Python 正则表达式 - 匹配和 Start()