一次消费多条消息

我正在使用外部服务(服务)来处理某些特定类型的对象。 如果我以10个批次发送对象,则该服务工作得更快。我当前的体系结构如下所示。 生产者一个接一个地播放对象,一群消费者从队列中一个接一个地将它们拉出来并发送给服务。 这显然不是最理想的。

我不想修改生产者代码,因为它可以在不同的情况下使用。 我可以修改消费者代码,但只能增加复杂性的代价。 我也知道prefetch_count选项,但我认为它只适用于网络级别 - 客户端库(pika)不允许在消费者回调中一次获取多条消息。

那么, RabbitMQ可以在将消息发送给消费者之前创建批量消息吗? 我正在寻找像“一次消费n条消息”的选项。


您不能在消费者回调中对消息进行批处理,但可以使用线程安全库并使用多个线程来使用数据。 这样做的好处是,您可以在五个不同的线程上获取五条消息,并在需要时组合数据。

作为一个例子,你可以看看我将如何使用我的AMQP库实现这个。 https://github.com/eandersson/amqpstorm/blob/master/examples/scalable_consumer.py

链接地址: http://www.djcxy.com/p/79473.html

上一篇: Consume multiple messages at a time

下一篇: Display the knitr code chunk source in document