【问题标题】:Notifying JMS Message sender (Web App) after message processed by Listener在侦听器处理完消息后通知 JMS 消息发送方(Web 应用程序)
【发布时间】:2011-06-08 22:56:29
【问题描述】:

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

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

有什么方法可以在监听器完成消息处理后通知网络用户。

发送响应事件的一种方式,该事件将被 Web 应用程序监听;但 如何解决以下情况:

  1. User1 点击提交 -> 依次发送 JMS 消息
  2. 接收消息的侦听器处理消息(消息处理可能需要 20-30 分钟才能完成)。
  3. 侦听器应用程序发送另一个 JMS 事件“Process_complete”
  4. 因为这是一个网络应用程序;当前有 n 个用户登录到该应用程序。那么如何识别正确的用户/如果用户已经注销怎么办?

有什么办法可以解决吗?

请发表您的看法。

【问题讨论】:

    标签: java spring jms


    【解决方案1】:

    在 JMS 中,我会将 ReplyTo 功能与临时队列一起使用。创建消息时,您还创建了一个临时队列(使用 SessioncreateTemporaryQueue 方法)并将 JMSReplyTo Header 设置为它。之后在临时队列上创建一个 Consumer 并开始接收。也许您想在接收操作上设置一个超时,并在超时后删除临时队列。

    更多关于这方面的想法可以在这里找到:http://blog.temposwc.com/2010/03/asynchronous-jms-requestreply_25.html

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-07-12
        • 2011-01-20
        • 1970-01-01
        • 2011-10-09
        • 1970-01-01
        • 2013-12-16
        • 2012-07-21
        • 1970-01-01
        相关资源
        最近更新 更多