骡子每次流量一次

时间:2014-01-13 18:42:13

标签: mule mule-studio

我有流入的端点我有VM Queue。现在我想将进程运行为:

  1. VM入站端点获取消息并启动长时间运行的处理流程
  2. 在VM入站端点上,然后会出现另一条消息(例如10条消息),这些消息将启动另一个长时间运行的进程,但VM会将消息保留在队列中,直到第一个消息完成为止
  3. 此时间后,VM队列上的每条消息都有超时从队列中删除
  4. 我如何在MuleESB中执行此操作?

1 个答案:

答案 0 :(得分:1)

如果是异步流,您可以使用处理策略来限制运行特定流的线程数。

<queued-asynchronous-processing-strategy name="allowOneThread" maxThreads="1"/>

<flow name="OnlyOneAtTheTime" processingStrategy="allowOneThread">
    <vm:inbound-endpoint path="requestQueue" exchange-pattern="one-way" />
    <logger level="ERROR" message="Before sleep : #[payload]"/>
    <!-- Simulate long running processor -->
    <component class="Sleep" />
    <logger level="ERROR" message="After sleep : #[payload]"/>
    <vm:outbound-endpoint path="responseQueue"/>
</flow>

请参阅Mule documentation on processing strategies