芹菜是否支持在给定的任务ID之前返回待处理的任务编号?
例如,如果没有celery worker启动,我会推送task1,task2,task3,这三个都是挂起的,现在,我想要的是,如果我给task3,它告诉我3之前有2个挂起的任务.
我使用芹菜芹菜4.1,rabbitmq 3.5.4作为经纪人,redis 3.2.9作为结果后端.
虽然我可以通过管理API获取兔子队列深度(例如来自pyrabbit包的get_queue_depth),但这会导致整个队列深度,而不是指定任务ID之前的未决数量.
而且我知道我可以自己维护一个队列来管理推送的任务ID.
但我想,如果芹菜或兔子本身有任何简单的方法.
谢谢.
最佳答案 我不确定它是否回答了你的问题,但有
control client可以帮助你检查保留的任务,活动任务等等.
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