在 mule-4 中使用 on error continue 时如何避免错误日志

问题描述 投票:0回答:1

我正在使用 mule-4 中的 JMS 消耗组件轮询 JMS 队列。当队列中没有消息时,它正在打印 错误日志。我想避免错误日志。你能建议我们如何在 mule-4 中实现这一点吗

<flow name="docusign-message-reprocessing-reports-subflow" doc:id="f3ffe923-ee3e-4e0d-8a29-ec874b9755d7" >
        <scheduler doc:name="Scheduler" doc:id="ff715c36-be3e-4f79-bdc9-db7934c75985" >
            <scheduling-strategy >
                <fixed-frequency timeUnit="HOURS" frequency="3" startDelay="1"/>
            </scheduling-strategy>
        </scheduler>
        <logger level="INFO" doc:name="Logger" doc:id="66ef28f0-c4a6-4bec-b824-a51ce7e8ea79" message="@@@@ ---&gt; scheduler triggered"/>
        <jms:consume doc:name="Consume" doc:id="e63155ec-7563-4409-bd83-c66e6e1c792a" config-ref="AMQ-DocuSign-Connector" destination="#[Mule::p('amq.docusign.reports.bqueue')]" maximumWaitUnit="SECONDS" maximumWait="10">
            <jms:consumer-type>
                <jms:queue-consumer />
            </jms:consumer-type>
        </jms:consume>
        <logger level="INFO" doc:name="Logger" doc:id="47cd3399-a84d-476e-b065-b58c6d94079d" message="printing payload #[payload]"/>
        <choice doc:name="Choice" doc:id="ea7cbccb-6b47-456b-a2cb-c67561b53917">
            <when expression="#[!isEmpty(payload)]">
                <logger level="INFO" doc:name="Logger" doc:id="b8c49215-383f-45e3-aaf3-2b9511a53828" message="#[&quot;Moving messages from DLQ&quot; ++ Mule::p('amq.docusign.reports.bqueue')  as String ++   &quot;to&quot; ++ Mule::p('amq.docusign.reports.topic') as String]" />
                <jms:publish doc:name="Publish" doc:id="44425d09-4ced-4a9d-a1c8-9c6259a2b6c9" destination="${amq.docusign.reports.topic}" config-ref="AMQ-DocuSign-Connector" destinationType="TOPIC" />            
</when>
                <otherwise>
                    <logger level="INFO" doc:name="Logger" doc:id="eb5f2d82-f0a3-4a8d-93f0-25ac4784e0fc" message="#[&quot;No message found in DLQ&quot; ++  Mule::p('amq.docusign.reports.bqueue')  as String ++  &quot;!&quot;]" />
                </otherwise>
        </choice>
        <error-handler >
            <on-error-continue enableNotifications="true" logException="true" doc:name="On Error Continue" doc:id="6443cb12-3b4e-4217-b559-f4ed22d2d27f" >
                <logger level="INFO" doc:name="Logger" doc:id="db46b10a-2203-4acb-b65d-07cd674b3373" message="no message found in Dead letter Queue"/>
            </on-error-continue>
        </error-handler>

我收到以下错误消息,因为队列为空,没有要检索的消息

Message               : Failed to retrieve a Message. Operation timed out after 10000 milliseconds
Element               : docusign-message-reprocessing-reports-subflow/processors/1 @ wbg-itsen-docusign-connect:docusign-reports-reprocess.xml:16 (Consume)
Element DSL           : <jms:consume doc:name="Consume" doc:id="e63155ec-7563-4409-bd83-c66e6e1c792a" config-ref="AMQ-DocuSign-Connector" destination="#[Mule::p('amq.docusign.reports.bqueue')]" maximumWaitUnit="SECONDS" maximumWait="10">
<jms:consumer-type>
<jms:queue-consumer></jms:queue-consumer>
</jms:consumer-type>
</jms:consume>
Error type            : JMS:TIMEOUT
FlowStack             : at docusign-message-reprocessing-reports-subflow(docusign-message-reprocessing-reports-subflow/processors/1 @ wbg-itsen-docusign-connect:docusign-reports-reprocess.xml:16 (Consume))

  (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)

我不希望每次触发调度程序时都在日志中打印此重复消息,我只想在队列中没有消息时丢弃该流。

mule mulesoft mule4 mule-esb
1个回答
0
投票

您的

<on-error-continue>
显示
logException="true"
。更改为
false
以避免此错误日志。这与在问题评论中@jarus 建议的“错误继续”范围中取消选中“记录异常”相同。

© www.soinside.com 2019 - 2024. All rights reserved.