我在芹菜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
答案 0 :(得分:2)
您可以使用celery flower
库来执行此操作。
它将为您提供多种功能,例如显示任务进度和历史记录,在漂亮的仪表板样式界面中显示任务详细信息,图表和统计信息。
以下是一些参考屏幕截图。
任务信息中心:
工作人员任务:
任务信息:
答案 1 :(得分:1)
如果你想要一个预制界面,你会喜欢flower
。它以漂亮的Web视图显示所有任务。
如果您尝试以编程方式处理每项任务,那么花不是正确的,因为它不支持它。然后你必须使用一个用于python的rabbitmq / AMQP库,这个库已经讨论过,例如:在这里:Good Python library for AMQP
有了它,绝对有可能以某种或其他方式做你想象的代码,但你必须阅读,因为我现在对芹菜和花很好。