侦听许多使用Spring AMQP动态创建的短暂队列

问题描述 投票:0回答:1

我正在使用RabbitMQ / Spring / Spring AMQP构建应用程序,并且在处理排队方式时遇到麻烦。

基本上,我有一个队列,每个消费者都在听,每个消息基本上都说“该队列已准备好由单个消费者处理”。然后,使用者将收听消息中指示的队列,使用该队列中的所有消息,并在完成后最终将其删除。

这些短暂的队列都是在处理数据时动态创建的,不能被多个使用者使用(无论谁在“就绪”队列中获取消息)。

在这种情况下,我无法很好地与消费者打交道。现在,每当消费者从“就绪”队列中收到一条消息时,我就创建一个新的DirectMessageListenerContainer,然后在获得所需的所有消息后立即停止它。看来此解决方案并不理想。使用Spring AMQP / RabbitMQ是否有更好的方法来处理这种情况?

java rabbitmq spring-amqp spring-rabbitmq spring-rabbit
1个回答
0
投票

您可以在运行时在现有容器中添加/删除队列;使用直接容器更有效(请参见Choosing a container)。

MessageProperties具有consumerQueue属性,可以告诉您消息来自哪个队列。

© www.soinside.com 2019 - 2024. All rights reserved.