2016-11-10 59 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