如何查看在rabbitmq队列中推送的所有芹菜任务

时间:2015-08-12 16:58:01

标签: python django rabbitmq backup celery

我在芹菜2.5.5上有django项目,在debian 6上有rabbitmq后端。我在一个队列中有超过6000个不同类型的任务。代码中存在一些错误,我需要列出该队列中的所有任务并提取其中的一些。我只需要找到rabbitmq队列中的所有任务ID。我无法找到如何连接rabbitmq队列并列出其内容的方法,最好不要启动管理插件。

伟大的东西会像蟒蛇一样:

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

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

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

感谢您的想法

的Pavel

2 个答案:

答案 0 :(得分:2)

您可以使用celery flower库来执行此操作。

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

以下是一些参考屏幕截图。

任务信息中心:

tasks

工作人员任务:

worker_tasks

任务信息:

task_info

答案 1 :(得分:1)

如果你想要一个预制界面,你会喜欢flower。它以漂亮的Web视图显示所有任务。

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

有了它,绝对有可能以某种或其他方式做你想象的代码,但你必须阅读,因为我现在对芹菜和花很好。