2

如何在 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天没反应?我问错了吗?

4

1 回答 1

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>
于 2013-11-29T21:24:22.550 回答