在Listener处理消息后通知JMS消息发送方(Web App)

时间:2011-01-14 04:59:58

标签: java spring jms

我有一个Web应用程序(Flex 4 - Spring Blaze DS - Spring 3.0),它将JMS事件发送到批处理应用程序(Standalone java)

我正在使用Spring提供的JMS基础设施(spring JmsTemplate,SimpleMessageListenerContainer,MessageListenerAdapter)和TIBCO EMS。

听众完成邮件处理后,我们是否可以通知网络用户。

发送将由Web应用程序监听的响应事件的方法之一;但 如何解决以下情况:

  1. User1点击提交 - >然后发送JMS消息
  2. 收听消息的监听器处理消息(消息处理可能需要20-30分钟才能完成)。
  3. 监听器应用程序发出另一个JMS事件“Process_complete”
  4. 因为这是一个Web应用程序;目前有n个用户登录该应用程序。那么如何识别正确的用户/如果用户已经注销会怎样?
  5. 有没有办法解决这个问题?

    请发表您的观点。

2 个答案:

答案 0 :(得分:3)

在JMS中,我会将ReplyTo功能与临时队列一起使用。在创建Message时,您还要创建一个临时队列(使用 Session createTemporaryQueue 方法)并将JMSReplyTo Header设置为它。之后,在临时队列上创建使用者并开始接收。也许你想在接收操作上给出超时并在超时后删除临时队列。

有关此问题的更多想法可以在这里找到:http://blog.temposwc.com/2010/03/asynchronous-jms-requestreply_25.html

答案 1 :(得分:0)

我只知道一种方法:创建特殊通知队列并在Web应用程序中侦听此队列。当您的侦听器在独立应用程序中实现完成处理消息时,它应该向通知队列发送通知消息。