当前位置: 首页 > 知识库问答 >
问题:

芹菜检查指定taskid之前的未决任务数

谢弘阔
2023-03-14

芹菜是否支持在给定任务 ID 之前返回挂起的任务编号?

例如,没有芹菜工人启动,我推task1、task2、task3,这三个都是挂起的,现在,我想要的是,如果我给task3,它告诉我在3之前有两个挂起的任务。

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

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

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

但是我想如果有什么简单的方法可以通过芹菜或Rabbitmq本身。

谢谢

共有1个答案

郜琦
2023-03-14

我不确定它是否回答了您的问题,但有一个控制客户端可以帮助您检查保留的任务、活动的任务等等。。

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

 类似资料:
  • 问题内容: 我正在尝试将类的方法用作django-celery任务,并使用@task装饰器对其进行标记。阿南德·杰亚哈(Anand Jeyahar)询问,这里也描述了同样的情况。是这样的 问题是,即使我使用这样的类实例,也需要至少两个参数,这意味着指针未命中。 更多信息: 由于继承,我无法将类转换为 模块 方法在很大程度上依赖于类成员,所以我不能使它们成为 静态的 标记 类 与@task装饰任务,

  • 现在,我想将< code>register事件发布到某个特殊的交换,我可以使用celery远程检索和处理它。 实际上,我已经使用了函数来实现这一点,但是它必须传递来指示应该执行哪个任务并消费它。所以它似乎不太适合我的目标。 我想要的就是这样: 向某些发布消息; 远程机器1订阅此或并捕获消息,用于执行任务; 远程机器2-与机器1相同但执行另一个任务-接收(可能需要回复某些) 例如,就像这个工作流一样

  • 问题内容: 我正在使用芹菜和django-celery。我定义了一个我想测试的定期任务。是否可以从外壳程序手动运行定期任务,以便查看控制台输出? 问题答案: 您是否尝试过仅从Django Shell运行任务?您可以使用任务的方法来确保它在本地积极运行。 假设在子模块的Django应用中调用了该任务: 结果实例具有与通常类型相同的API ,不同之处在于,始终要在本地迅速地评估结果,并且该方法将阻塞,

  • 我觉得这是一个非常简单的用例,但不是一个我从文档中成功解决的用例。 以下是我的问题的人为版本: 我有一个任务,它接受一个参数并返回一个列表。我想对列表中的每个元素应用另一个任务。然后(视情况而定)我可能希望继续处理其他任务。 或者 地图不是那样的,但我觉得应该是这样的!我只想从一个参数链接到一个列表,然后再返回。。这当然不难做到吗? 这里和这里的“解决方案”似乎过于复杂,我不敢相信这是最佳实践。

  • 当我运行批处理文件以启用芹菜时: 出现以下错误: 回溯(最后一次调用): 文件“C:\Users\Chernov.a\Desktop\Projects\Roscosmos\Python36-32\lib\runpy.py”,第193行,作为主“main”,mod\u spec) 文件“C:\Users\Chernov.a\Desktop\Projects\Roscosmos\Python36-32

  • 问题内容: 当我有以下内容时 直观的解释是,task3应该仅在第2组中的所有任务完成后才执行。 实际上,任务3在group1开始但尚未完成时执行。 我究竟做错了什么? 问题答案: 事实证明,在芹菜中,不能将两个组链接在一起。 我怀疑这是因为与任务链接的组自动变成和弦 -> Celery文档:http : //docs.celeryproject.org/en/latest/userguide/ca