骡子:按间隔处理消息。延迟消息处理

时间:2013-08-22 20:10:50

标签: mule delayed-execution

如何在Mule 3.3.1中创建延迟的JMS消息处理器?我的目标是在一定的时间间隔内处理来自队列的消息......一些每分钟醒来的侦听器来处理消息。

我有以下配置,但延迟没有兑现。回滚邮件时,会立即选择进行处理。

    <spring:bean id="MQConnectionFactory" class="com.ibm.mq.jms.MQQueueConnectionFactory">
        <spring:property name="transportType" value="1"/>
        <spring:property name="hostName" value="myHost"/>
        <spring:property name="port" value="1414"/>
        <spring:property name="queueManager" value="myQmgr"/>
    </spring:bean>

<jms:connector name="queueConnector" connectionFactory-ref="MQConnectionFactory" 
            specification="1.1" username="xxx" password="yyy" 
            disableTemporaryReplyToDestinations="true"
            numberOfConcurrentTransactedReceivers="3" maxRedelivery="5">
            <service-overrides transactedMessageReceiver="com.mulesoft.mule.transport.jms.TransactedPollingJmsMessageReceiver"/>
</jms:connector>

<jms:endpoint name="someQueue" queue="osmQueue" connector-ref="queueConnector">
  <jms:transaction action="ALWAYS_BEGIN"/>          
  <property key="pollingFrequency" value="60000"/> 
</jms:endpoint>

我做了很多搜索,但无法确定正确的解决方案。如果有更好的选择,我会打开。感谢任何帮助。 2天没有回应?我说错了这个问题吗?

1 个答案:

答案 0 :(得分:0)

你尝试过使用Quartz吗? 此配置每分钟启动您的JMS入站

<flow name="ftpFlow2" doc:name="ftpFlow2">
        <quartz:inbound-endpoint jobName="job1" repeatInterval="60000" responseTimeout="10000"     doc:name="Quartz">
        <quartz:endpoint-polling-job>
            <quartz:job-endpoint ref="someQueue"/>
        </quartz:endpoint-polling-job>
    </quartz:inbound-endpoint>
    </flow>