我使用org.springframework.jms.annotation.JmsListenerConfigurer
使用spring配置JMS我正在使用亚马逊的SQS:
amazonSQS()createQueue方法(queueRequest).getQueueUrl(); endpoint.setMessageListener(agentActionListener());
我有一个用例,其中我有相同的消息格式,但我需要有一个DelaySeconds为60的队列,另一个没有延迟的队列立即处理。
亚马逊的SDK提供了一个消息计时器,因此您可以设置单个消息的延迟,而不是指定队列本身的延迟,但遗憾的是,Spring并不支持此消息(https://github.com/spring-cloud/spring-cloud-aws/issues/101)。
我的问题很简单:
鉴于我使用的是通用消息格式,唯一的区别是一个队列配置为使用延迟,我可以使用相同的JMS侦听器来处理这两个队列吗?
onMessage逻辑是相同的。我只是想确保JMS方面没有一些限制。
提前致谢。
答案 0 :(得分:1)
鉴于我使用的是常见的消息格式和唯一的区别 是一个队列配置为使用延迟,我可以使用相同的JMS 监听器处理两个队列?
您需要配置两个消息侦听器,以便两者可以同时处理消息,并且还需要将onmessage
逻辑移动到公共处理程序(以重用相同的代码)。
两个消息侦听器重用相同的逻辑,但并行运行。