弹簧集成的si delayer组件中的问题。服务器关闭后,delay的恢复不会发生

时间:2016-02-24 08:10:43

标签: spring spring-mvc spring-integration oracle12c

我们在我们的解决方案中使用了由消息存储支持的delayer,如果某些spel表达式条件为真,则将消息的延迟时间设置为15分钟。 但是如果应用程序服务器在中间重新启动,则延迟器成为解决方案的诅咒,并且所有消息都没有从延迟器恢复,并且它变成悬空情况。 请建议。 代码:

<int:delayer id="mydelayer" input-channel="DelayerOutputChannel"
        output-channel="letChannel" default-delay="1000"
        expression="payload.comm.code == 'ABC' ? #{eodConfigMap['ABC']} :( payload.comm.code == 'DEF' ? #{eodConfigMap['DEF']} : (payload.commRequest.code == 'GHI' ? #{eodConfigMap['GHI']} : #{eodConfigMap['FGH']}))"
        message-store="siMessageStore"   />

<util:map id="eodConfigMap" key-type="java.lang.String"
        value-type="java.lang.String" scope="singleton" map-class="java.util.HashMap">
        <entry key="FDG" value="1000"/>
        <entry key="ABC" value="1000"/>
        <entry key="DEF" value="1000"/>
        <entry key="GHI" value="1000"/>
    </util:map>

        <int-jdbc:message-store id="siMessageStore" data-source="jndiDataSource" region="DEF_DELAY"
     table-prefix="MY_TABLE_SIDELAY"/>

此致 拉姆

0 个答案:

没有答案