我正在使用Python、RabbitMQ和Pika进行开发。
我有多个消费者和队列。我希望一个消费者可以从所有队列中获取消息。比如说,我有2个消费者和3个队列。我希望每个消费者都可以从队列1、2和3中读取消息。
我已经通过basic_get实现了这个功能:
basic_get(queue1)
basic_get(queue2)
basic_get(queue3)
=> 从队列1、2和3中各取出一条消息,然后重复以上步骤。
“问题”在于,我想使用basic_consume来设置qos(让队列每次推送n条消息)。我想要从队列1中获取n条消息,然后从队列2中获取n条消息,再从队列3中获取n条消息,然后回到队列1,以此类推。我不想先从第一个队列中获取所有的消息,然后再从第二个队列中获取所有的消息,以此类推。
我还没有找到一种实现基于basic_consume的多队列消费的方法。在我的情况下,是否可能实现basic_consume呢?
另外,当使用basic_consume时,我需要使用线程吗?它会在RabbitMQ中发送消息时调用一个函数。但据我所知,这是一个监听器,当它在监听时,我无法做任何事情。使用线程可以帮助我在监听新消息的同时处理任务,对吗?
谢谢。