我正在使用RabbitMQ/Spring/Spring AMQP构建一个应用程序,并且在处理我的队列布局时遇到了问题。
从本质上讲,我有一个每个消费者都会监听的队列,每个消息基本上都说“这个队列已经准备好由一个消费者来处理了”。然后,使用者将侦听消息中指示的队列,使用该队列中的所有消息,最后在完成时将其删除。
这些短暂的队列都是在数据进入处理时动态创建的,不能被多个使用者使用(无论哪个消费者获得了‘就绪’队列中的消息)。
在这种情况下,我很难优雅地处理消费者。现在,我只是在消费者每次从“就绪”队列中获得消息时创建一个新的DirectMessageListenerContainer
,然后在它获得所有需要的消息时停止它。看起来这个解决方案并不理想。有没有更好的方法用Spring AMQP/RabbitMQ来处理这种情况?
发布于 2019-10-01 16:53:50
您可以在运行时向现有容器添加队列或从现有容器中删除队列;使用直接容器更有效(请参阅Choosing a container)。
MessageProperties
具有consumerQueue
属性,用于告诉您消息来自哪个队列。
https://stackoverflow.com/questions/58189110
复制相似问题