2016-11-10 25 views
0

我与春天有org.springframework.jms.annotation.JmsListenerConfigurerJmsListener和SQS

我使用亚马逊的SQS配置JMS:

amazonSQS()createQueue方法(queueRequest).getQueueUrl(); endpoint.setMessageListener(agentActionListener());

我有一个用例,我有相同的消息格式,但我需要有一个DelaySeconds为60的队列,另一个没有任何延迟,立即进行处理。

亚马逊的SDK提供了一个消息定时器,因此您可以在单个消息上设置延迟与在队列本身上指定延迟,但不幸的是,Spring不支持这个(https://github.com/spring-cloud/spring-cloud-aws/issues/101)。

我的问题很简单:

由于我使用的是通用的消息格式,唯一不同的是,一个队列配置为使用的延迟,我可以使用相同的JMS监听器来处理这两个队列的?

onMessage逻辑是相同的。我只是想确保JMS方面没有一些限制。

在此先感谢。

回答

1

由于我使用的是常见的消息格式和唯一的区别 是一个队列配置为使用的延迟,我可以使用相同的JMS 监听器来处理这两个队列的?

您需要配置两个消息监听器,这样既可以并发处理的消息,并且还需要将onmessage逻辑移动到一个共同的处理器(重复使用相同的代码)。

两个消息侦听器重用相同的逻辑,但并行运行。

+0

谢谢。这就说得通了。 – Mike