rabbitmq python amqp user_AMQP/RabbitMQ多个用户但只有一个获取工作?

我正在学习AMQP,所以这可能是对我所做工作的误解。我正试图在我自己的私有服务器上设置rabbitmq,以便为一个系统场(我有一堆需要处理的图像)提供服务。我建立了一个三步走的管道:| put image on queue | --work_queue--> | process | --results--> | archive results |

我安装了rabbitmq,并在服务器上创建了两个队列“工作队列”和“结果”。我使用amqplib编写了一些python脚本,并且使用一个图像处理器worker可以很好地处理管道。我已经在队列中添加了100个图像,我的一台机器很高兴一次抓取一个图像,然后快速地处理数据,并将结果放入结果队列。在

问题是,我假设如果我在另一台机器上启动另一个图像处理程序,它也会将工作从队列中拉出来。这似乎正是rabbitmq站点上的“工作队列”教程中列出的情况。我以为这会管用。然而,真正发生的是,不管我开始工作的其他工人有多少,他们只是永远地等待,永远也得不到任何工作,即使在工作队列中有大量的消息在等待。在

我误解了什么?在服务器上对工作进行排队的相关代码:

^{pr2}$

以及流程工人的消费者方面:from amqplib import client_0_8 as amqp

conn = amqp.Connection(host="foo:5672 ", userid="pipeline",

password="XXXXX", virtual_host="/", insist=False)

chan = conn.channel()

def work_callback(msg):

....

while True:

chan.basic_consume(callback=work_callback, queue='work_queue')

try:

chan.wait()

except keyboardInterrupt:

print "\nExiting cleanly"

sys.exit(0)

我看到其他工人都有联系:$ sudo rabbitmqctl list_queues

Listing queues ...

results 0

work_queue 246

...done.

$ sudo rabbitmqctl list_connections

Listing connections ...

pipeline 192.168.8.1 41553 running

pipeline XX.YY.ZZ.WW 46676 running

pipeline 192.168.8.4 44482 running

pipeline 192.168.8.6 41884 running

...done.

在哪里二十、 YY.ZZ号.WW是外部IP。192.168.8.6的工作线程在队列中忙得不可开交,然而外部IP上的工作线程却无所事事,而246条消息则在队列中等待,而它应该等待的队列中等待。在

有什么想法?在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值