如何从代码中获取Mule ESB vm入站端点队列中的消息数量?
以下是配置:
<vm:connector name="queue.vm.connector">
<vm:queue-profile maxOutstandingMessages="${oms.process.flow.max.queue.size}"/>
</vm:connector>
...
<flow name="Flow1"...
<vm:inbound-endpoint exchange-pattern="one-way" path="inbound_parcel.create.queue" responseTimeout="10000" mimeType="text/plain" connector-ref="queue.vm.connector" doc:name="Inbound Parcel Create Queue"/>
谢谢。
答案 0 :(得分:1)
可以使用以下自定义代码实现:
VMConnector vmConnector = (VMConnector) muleContext.getRegistry().lookupConnector("queue.vm.connector");
vmConnector.getQueueManager().getQueueSession().getQueue("inbound_parcel.create.queue").size();
如果队列是持久的,则可以通过监视存储消息的文件夹来实现相同的结果:
${MULE_HOME}/.mule/${app.name}/queuestore/inbound_parcel.create.queue