Уведомление отправителя сообщения JMS (веб-приложение) после обработки сообщения прослушивателем - PullRequest
0 голосов
/ 14 января 2011

У меня есть веб-приложение (Flex 4 - Spring Blaze DS - Spring 3.0), которое отправляет событие JMS в пакетное приложение (автономная версия Java)

Я использую инфраструктуру JMS, предоставленную Spring (spring JmsTemplate), SimpleMessageListenerContainer, MessageListenerAdapter) с TIBCO EMS.

Есть ли какой-либо способ, с помощью которого мы можем уведомить веб-пользователя, как только обработчик сообщений завершил обработку.который будет прослушиваться веб-приложением;но как обратиться к следующему сценарию:

  1. User1 нажмите на submit -> который, в свою очередь, отправляет сообщение JMS
  2. Приемник при получении сообщения обрабатывает сообщение (обработка сообщения может занять 20-30минут до завершения).
  3. Приложение прослушивателя отправляет другое событие JMS "Process_complete"
  4. Поскольку это веб-приложение;в данный момент в приложении зарегистрировано n пользователей.так как определить правильного пользователя / что делать, если пользователь уже вышел из системы?

Есть ли способ справиться с этим?

Пожалуйста, оставьте свои просмотры.

Ответы [ 2 ]

3 голосов
/ 14 января 2011

В JMS я бы использовал функцию ReplyTo вместе с временными очередями. При создании сообщения вы также создаете временную очередь (с помощью метода createTeoraryQueue для Session ) и задаете для него заголовок JMSReplyTo. После этого создайте Consumer во временной очереди и начните получать. Возможно, вы хотите указать тайм-аут для операции приема и удалить временную очередь после этого тайм-аута.

Еще несколько мыслей по этому поводу можно найти здесь: http://blog.temposwc.com/2010/03/asynchronous-jms-requestreply_25.html

0 голосов
/ 14 января 2011

Мне известен только один способ: создать специальную очередь уведомлений и прослушивать эту очередь в своем веб-приложении.Когда ваш слушатель, реализованный в автономном приложении, завершил обработку сообщения, он должен отправить уведомление в очередь уведомлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...