JmsListener и SQS

Я настраиваю JMS с помощью spring с помощью org.springframework.jms.annotation.JmsListenerConfigurer.

Я использую Amazon SQS:

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

У меня есть вариант использования, когда у меня тот же формат сообщения, но мне нужна одна очередь с DelaySeconds 60, а другая без задержки, которая обрабатывается немедленно.

SDK Amazon предоставляет таймер сообщений, поэтому вы можете установить задержку для одного сообщения вместо указания задержки в самой очереди, но, к сожалению, Spring не поддерживает это (https://github.com/spring-cloud/spring-cloud-aws/issues/101 ).

Мой вопрос прост:

Учитывая, что я использую общий формат сообщений и единственное отличие состоит в том, что одна очередь настроена на использование задержки, могу ли я использовать один и тот же прослушиватель JMS для обработки обеих очередей?

Логика onMessage идентична. Я просто хочу убедиться, что на стороне JMS нет ограничений.

Заранее спасибо.


person Mike    schedule 10.11.2016    source источник


Ответы (1)


Учитывая, что я использую общий формат сообщений и единственное отличие состоит в том, что одна очередь настроена на использование задержки, могу ли я использовать один и тот же прослушиватель JMS для обработки обеих очередей?

Вам нужно настроить два прослушивателя сообщений, чтобы оба могли обрабатывать сообщения одновременно, а также вам нужно переместить логику onmessage в общий обработчик (чтобы повторно использовать один и тот же код).

Два прослушивателя сообщений повторно используют одну и ту же логику, но работают параллельно.

person developer    schedule 10.11.2016
comment
Спасибо. Это имеет смысл. - person Mike; 14.11.2016