MULE-4:VM:消费前检查VM队列中的消息数量

MULE-4:VM: Check number of messages in VM queue before consuming

我们需要在流中使用来自 VM 的消息。当前,当 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 之前检查 VM 中可用消息的数量。

您可以在错误处理程序上使用 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>