gpt4 book ai didi

python - Celery 检查指定 taskid 之前的挂起任务数

转载 作者:太空宇宙 更新时间:2023-11-03 11:42:38 26 4
gpt4 key购买 nike

celery 是否支持返回给定任务 id 之前的待处理任务数?

例如,在没有 celery worker 启动的情况下,我推送 task1、task2、task3,这三个都处于待处理状态,现在,我想要的是,如果我给 task3,它会告诉我在 3 之前有 2 个待处理任务。

我使用 celery celery 4.1,rabbitmq 3.5.4 作为代理,redis 3.2.9 作为结果后端。

虽然我可以通过管理 API(例如 pyrabbit 包中的 get_queue_depth)获取 rabbit 队列深度,但这会导致整个队列深度,而不是指定任务 id 之前的挂起数。

而且我知道我可以自己维护一个管理推送任务 ID 的队列。

但我想知道 celery 或 rabbitmq 本身是否有任何简单的方法。

谢谢。

最佳答案

我不确定它是否回答了您的问题,但有 control client这可以帮助您检查 reserved 任务、active 任务等。

i = app.control.inspect()
i.reserved()

#output:
[{'worker1.example.com':
[{'name': 'tasks.sleeptask',
'id': '32666e9b-809c-41fa-8e93-5ae0c80afbbf',
'args': '(8,)',
'kwargs': '{}'}]}]

了解更多信息:http://docs.celeryproject.org/en/latest/userguide/workers.html#dump-of-reserved-tasks

您还可以从命令行监控/检查:http://docs.celeryproject.org/en/latest/userguide/monitoring.html#commands

关于python - Celery 检查指定 taskid 之前的挂起任务数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46297459/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com