Ese*_*gün 7 python rabbitmq pika
我正在使用外部服务(服务)来处理某些特定类型的对象.如果我以10个批次发送对象,则服务运行得更快.我目前的架构如下.生产者一个接一个地广播对象,一群消费者从队列中拉出它们(一个接一个)并将它们发送给服务.这显然不是最理想的.
我不想修改生产者代码,因为它可以在不同的情况下使用.我可以修改消费者代码,但只能增加额外的复杂性.我也知道这个prefetch_count选项,但我认为它只适用于网络级别 - 客户端库(pika)不允许在消费者回调中同时获取多个消息.
那么,RabbitMQ可以在将消息发送给消费者之前创建批量消息吗?我正在寻找像"一次消费n条消息"这样的选项.
您不能在消费者回调中批量处理消息,但可以使用线程安全库并使用多个线程来消费数据。这样做的优点是,您可以在五个不同的线程上获取五个消息,并根据需要组合数据。
作为示例,您可以了解如何使用我的 AMQP 库来实现这一点。 https://github.com/eandersson/amqpstorm/blob/master/examples/scalable_consumer.py
| 归档时间: |
|
| 查看次数: |
2435 次 |
| 最近记录: |