【问题标题】:Subscribing to multiple ActiveMQ topics in a Coldfusion Event Gateway在 Coldfusion 事件网关中订阅多个 ActiveMQ 主题
【发布时间】:2016-03-21 22:02:03
【问题描述】:

我想知道是否可以使用 Coldfusion 示例 ActiveMQ 事件网关来订阅多个主题。

目前可以设置

destinationName=dynamicTopics/topic1

但我会假设我可以设置某种复合目的地

destinationName=dynamicTopics/topic1,topic2

destinationName=dynamicTopics/topic1,dynamicTopics/topic2

这似乎不起作用。这只是开箱即用,还是我错过了有关 JNDI 工作原理的一些内容?

显然,另一种选择是创建多个事件网关,但我根本不喜欢这个想法。

onIncomingMessage 处理程序中访问传入消息的主题名称也很重要

【问题讨论】:

    标签: coldfusion jms activemq jndi event-gateway


    【解决方案1】:

    我在单个 ActiveMQ 事件网关中容纳多个目标的方式是使用“操作”作为我的限定符。我没有使用多个队列或主题,而是将目标包含在我的有效负载中,例如:

    payload = {action: "notify", foo: "bar"};
    sendGatewayMessage('gw', {status = "SEND",
                              topic="dynamicTopics/sync", 
                              message = serializeJson(payload)});
    

    然后在onIncomingMessage中,我根据action进行fork:

    <cffunction name="onIncomingMessage">
        <cfargument name="event" type="struct" required="true" />
    
        <cfset var msg = deserializeJson(arguments.event.data.msg) />
    
        <cfif msg.action EQ "verify">
            <cfset verify(argumentCollection = msg) />
        <cfelseif msg.action EQ "notify">
            <cfset notify(argumentCollection = msg) />
        </cfif>
    
    </cffunction>
    

    并且我根据需要使用私有方法来实现每个例程。将代码从 onIncomingMessage 中提取出来的好处是,它可以在独立的 CFC 中实现,可以使用 MxUnit 或 TestBox 等工具自行进行单元测试。

    【讨论】:

      猜你喜欢
      • 2014-01-21
      • 2014-07-03
      • 2021-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 2021-10-14
      • 1970-01-01
      相关资源
      最近更新 更多