Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多重消费者&;生产者连接到消息队列,这在AMQP中可能吗?_Python_Message Queue_Rabbitmq_Amqp_Py Amqplib - Fatal编程技术网

Python 多重消费者&;生产者连接到消息队列,这在AMQP中可能吗?

Python 多重消费者&;生产者连接到消息队列,这在AMQP中可能吗?,python,message-queue,rabbitmq,amqp,py-amqplib,Python,Message Queue,Rabbitmq,Amqp,Py Amqplib,我想创建一个能够进行OCR文本识别的流程库。 我考虑过使用由多个OCR进程读取的单个消息队列 我要确保: 队列中的每条消息最终都会被处理 这项工作或多或少是平均分配的 图像将仅通过一个OCR进程进行解析 一个OCR进程不会同时获得多条消息(因此任何其他免费OCR进程都可以处理该消息) 使用AMQP可以做到这一点吗 我计划使用python和rabbitmq是的,这是可能的。我正在开发的实时MMO游戏的服务器集群就是这样运行的。我们使用ActiveMQ,但我认为RabbitMQ也可以实现这一切

我想创建一个能够进行OCR文本识别的流程库。 我考虑过使用由多个OCR进程读取的单个消息队列

我要确保:

  • 队列中的每条消息最终都会被处理
  • 这项工作或多或少是平均分配的
  • 图像将仅通过一个OCR进程进行解析
  • 一个OCR进程不会同时获得多条消息(因此任何其他免费OCR进程都可以处理该消息)
使用AMQP可以做到这一点吗


我计划使用python和rabbitmq是的,这是可能的。我正在开发的实时MMO游戏的服务器集群就是这样运行的。我们使用ActiveMQ,但我认为RabbitMQ也可以实现这一切

你提到的所有东西都可以从盒子里拿出来,最后一个除外

  • 队列中的每条消息最终都会被处理——这是消息代理的主要职责之一
  • 这项工作或多或少是平均分配的——这是另一项:)
  • 一幅图像将只通过一个OCR进程进行解析-这方面存在/topic和/queue的区别。主题就像广播信号,队列就是任务。在您的场景中需要一个/队列
为了使最后一个以所需的方式工作,使用者在订阅队列时发送AMQ特定的参数:

activemq.prefetchSize: 1

此设置保证消费者在接收完一条消息后,在向AMQ发送
ack
之前,不会再接收任何消息。我相信RabbitMQ中也存在类似的东西。

是的,正如@nailxx所指出的。AMQP编程模型与JMS稍有不同,因为您只有队列,可以在工作人员之间共享,也可以由单个工作人员单独使用。您还可以轻松地设置RabbitMQ来执行PubSub用例或JMS中所谓的主题。请转到我们的网页上找到大量关于这方面的有用信息

现在,特别是对于您的用例,已经有很多可用的工具。一个人们经常使用并且得到很好支持的方法是。下面是一个关于它的介绍,我认为这将帮助您开始:


如果您有任何问题,请发电子邮件给我们或发送到rabbitmq讨论邮件列表。

+1芹菜看起来很可爱。我会在最近的机会去看看。