我一直在尝试使用 RabbitMQ perl 库 Net::RabbitFoot,它在下面使用 AnyEvent::RabbitMQ。根据RabbitMQ Tutorial,将 prefetch_count 设置为 1 应该确保公平调度,因为不应该将消息发送给已经忙于处理另一条消息的工作人员。然而,perl 实现Net::RabbitFoot ,即使在设置了这里描述的 qos 后,似乎也不能以这种方式工作,第 54 行。它似乎只是进行香草循环调度并最终调度到已经执行的机器工作。这是qos实现。你能帮我弄清楚为什么会这样吗?这是图书馆的错误吗?
提前致谢。
编辑:
这是我的设置:2 个消费者附加到同名队列。当我发送大量消息时,我看到了这种模式:消费者 1:Msg1、Msg3、Msg5 ... 消费者 2:Msg2、Msg4、...所有消息都来自同一个队列。现在发生的情况是,如果 Msg3 占用了消费者 1,当消费者 2 空闲时,仍然将 Msg5 发送给消费者 1。