【问题标题】:MULE-4:VM: Check number of messages in VM queue before consumingMULE-4:VM:在消费前检查 VM 队列中的消息数量
【发布时间】:2020-12-10 00:18:46
【问题描述】:

我们需要在流中使用来自 VM 的消息。目前虚拟机为空时会报错如下:

Message : Tried to consume messages from VM queue 'FQ' but it was empty after timeout of 5 SECONDS Payload Type : org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamProvider 

现在我们将它包装在 try catch 块中并处理这个错误(它仍在打印错误堆栈跟踪,我们想避免它)

我想检查是否有一种方法或一段代码可用于在使用之前检查 VM 中可用的消息数量。

【问题讨论】:

  • 如下所示,现在我们没有在日志中看到错误堆栈跟踪。我将这个问题再保留几天,看看我是否可以得到逻辑来检查 VMqueue 中可用的消息数量。

标签: mule4


【解决方案1】:

您可以在错误处理程序上使用logException 属性,这样异常就不会打印在日志中。

例子:

    <try doc:name="Try">
        <vm:consume doc:name="Consume" config-ref="VM_Config" queueName="q1" />
        <error-handler >
            <on-error-continue enableNotifications="true" logException="false" doc:name="On Error Continue" type="VM:EMPTY_QUEUE">
                <logger level="INFO" doc:name="Logger" message="consume timeout"/>
            </on-error-continue>
        </error-handler>
    </try>

【讨论】:

  • 谢谢,我试试看。
  • 是的,它可以工作,现在堆栈跟踪没有被打印出来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 2014-09-11
  • 2018-08-26
  • 1970-01-01
相关资源
最近更新 更多