【问题标题】:How can I view the enqueued tasks in RabbitMQ?如何查看 RabbitMQ 中的排队任务?
【发布时间】:2012-10-14 12:42:16
【问题描述】:

我使用 RabbitMQ 作为我的消息代理,我的工作人员是 Celery 任务。我正在尝试诊断一个问题,即我将任务排入 RabbitMQ 但 Celery 没有接听。

有什么方法可以检查 RabbitMQ 中排队的任务是什么?我想查看它们入队的日期和时间、指定的任何 ETA、参数和任务名称。

我无法在文档中找到这些信息——也许我忽略了它——并希望你们中的一些人可能知道检查任务队列的简单方法。谢谢。

【问题讨论】:

    标签: python rabbitmq celery


    【解决方案1】:

    您可以使用Flower实时监控任务。

    https://github.com/mher/flower

    还检查 rabbitmqclt 命令检查 RabbitMQ 服务器状态:

    http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

    rabbitmqctl list_queues
    

    【讨论】:

      【解决方案2】:

      还有一些 celery 任务来监控队列:

      http://docs.celeryproject.org/en/latest/userguide/monitoring.html

      查看这些命令:

      #shows status of all worker nodes
      celery status
      #List active tasks
      celery inspect active
      #Show worker statistics (call counts etc.)
      celery inspect stats      
      

      【讨论】:

        【解决方案3】:

        我相信您正在寻找的命令是:

        celery inspect reserved
        

        文档[1]有如下描述:

        预留任务​​是已经收到,但仍在等待执行的任务。

        【讨论】:

          【解决方案4】:

          只要management pluginenabled,就可以从队列中消费任意数量的消息,并且可以选择重新排队:

          rabbitmqadmin get queue=queue_name requeue=true count=100
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-04-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2019-12-23
            • 2013-04-19
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多