Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.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
Rabbitmq 何时从队列中删除消息?_Rabbitmq - Fatal编程技术网

Rabbitmq 何时从队列中删除消息?

Rabbitmq 何时从队列中删除消息?,rabbitmq,Rabbitmq,假设我们有一个生产者、一个队列和一些在队列上订阅的消费者 Producer -> Queue -> Consumers 队列包含有关生命事件的消息。这些消息应接收所有消费者 何时删除队列? 当所有消费者都收到信息时 或者当一个消费者确认带有标志ack(true)的消息时 以及如何管理优先级,必须由谁从消费者那里首先/最后获取消息(不要与消息优先级混淆) 例如,我有10个消费者,我希望第五个消费者先收到消息,其余消费者在指定时间后收到消息。小心:当一个队列上有许多消费者时,只有其中一

假设我们有一个生产者、一个队列和一些在队列上订阅的消费者

Producer -> Queue -> Consumers
队列包含有关生命事件的消息。这些消息应接收所有消费者

何时删除队列?

  • 当所有消费者都收到信息时
  • 或者当一个消费者确认带有标志ack(true)的消息时
  • 以及如何管理优先级,必须由谁从消费者那里首先/最后获取消息(不要与消息优先级混淆)


    例如,我有10个消费者,我希望第五个消费者先收到消息,其余消费者在指定时间后收到消息。

    小心:当一个队列上有许多消费者时,只有其中一个消费者会收到给定的消息,前提是它被正确地消费和确认。您需要将尽可能多的用户队列绑定到一个exchange,以使所有用户都接收消息

    对于优先级问题,没有内置的机制让使用者接收具有优先级概念的相同消息:使用者优先级存在(请参阅),但它使使用者在给定队列中的其他使用者之前接收给定消息,因此其他使用者不会接收此消息。如果您需要协调消息的传递,您必须考虑一个更复杂的系统(可能是a或a?)

    请注意,您可以使用此选项延迟消息。同样,这需要有多个队列

    最后,删除队列时会出现许多情况。看一下文档,这些都解释得很好