【问题标题】:how to see all celery tasks pushed in rabbitmq queue如何查看在rabbitmq队列中推送的所有芹菜任务
【发布时间】:2015-08-12 16:58:00
【问题描述】:

我在 debian 6 上有 celery 2.5.5 和 rabbitmq 后端的 django 项目。我在一个队列中有超过 6000 个不同类型的任务。代码中有一些错误,我需要列出该队列中的所有任务并取出其中一些。我需要的是找出rabbitmq队列中的所有任务ID。我不知道如何连接rabbitmq队列并列出它的内容,最好不要启动管理插件。

如果是类似 Python 的东西,那就太好了:

    import somelib
    conn = somelib.server(credentials, vhost)
    queue = conn.get_queue(queue_name)
    messages = queue.get_messages()

但是列出此类队列的任何其他工具都有帮助。发现了一些使用 npm 安装的工具,但是 debian 6 不知道 npm 并且从源代码构建它不是很愉快的方式。

或者以人类可读的形式备份rabbitmq队列的东西也很感激。

感谢您的意见

帕维尔

【问题讨论】:

    标签: python django rabbitmq backup celery


    【解决方案1】:

    您可以使用celery flower 库来做到这一点。

    它将为您提供多种功能,例如显示任务进度和历史记录,在漂亮的仪表板样式界面中显示任务详细信息以及图形和统计信息。

    以下是一些截图供参考。

    任务仪表板:

    工人任务:

    任务信息:

    【讨论】:

      【解决方案2】:

      如果您喜欢预制界面,您会喜欢flower。它以漂亮的 Web 视图向您显示所有任务。

      但是,如果您尝试以编程方式处理每个任务,那么花不是正确的做法,因为它不支持它。然后你将不得不使用一个rabbitmq/AMQP library for python,已经讨论过例如。这里:Good Python library for AMQP

      有了这个,绝对可以以某种或其他方式编写你想象的代码,但你必须仔细阅读,因为我现在对芹菜和花没问题。

      【讨论】:

      • 谢谢,将采用 amqplib 方式。
      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2012-11-24
      • 1970-01-01
      • 2012-10-14
      • 2019-04-07
      • 2016-01-28
      • 1970-01-01
      • 2011-07-29
      相关资源
      最近更新 更多