python – Celery在指定的taskid之前检查挂起的任务号

芹菜是否支持在给定的任务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

点赞