Мул: обработка сообщений с интервалами. Отложенная обработка сообщений
Как создать обработчик сообщений JMS с задержкой в Mule 3.3.1? Моя цель - обрабатывать сообщения из очереди через определенный интервал... какой-нибудь слушатель, который просыпается каждую минуту для обработки сообщений.
У меня есть следующая конфигурация, но задержка не соблюдается. Когда сообщение откатывается, оно сразу же выбирается для обработки.
<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 ответ
Вы пробовали использовать Кварц? Этот конфиг запускает входящие 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>