我有2個流,A.flow和B.flow,最終兩個流都執行相同的java類。mule中的不同流的同步
A & B從單獨的隊列中讀取。
我想同步流程,以便如果兩個流程同時獲得輸入,然後一個流程在一個時間進程,並且在完成之後,另一個流程將開始處理。
任何想法?
感謝
我有2個流,A.flow和B.flow,最終兩個流都執行相同的java類。mule中的不同流的同步
A & B從單獨的隊列中讀取。
我想同步流程,以便如果兩個流程同時獲得輸入,然後一個流程在一個時間進程,並且在完成之後,另一個流程將開始處理。
任何想法?
感謝
使用一個共用的組件,並將其配置爲使用一個線程時間:
<flow name="A">
<jms:inbound-endpoint...>
...
<vm:outbound-endpoint path="process"/>
...
</flow>
<flow name="B">
<jms:inbound-endpoint...>
...
<vm:outbound-endpoint path="process"/>
...
</flow>
<flow name="process">
<vm:inbound-endpoint path="process"/>
<pooled-component class="org.my.PrototypeObject">
<pooling-profile exhaustedAction="WHEN_EXHAUSTED_WAIT" initialisationPolicy="INITIALISE_ALL" maxActive="1" maxIdle="1" maxWait="1000" /> </pooled-component>
</pooled-component>
</flow>
該組件必須位於流A和B引用的第三個流(而非子流)中,對嗎? –
@DavidDossot,你是對的,更新我的答案 –
當你說「流處理同一個Java類」你意味着消息的消息有效載荷包含相同的java對象(類實例),或者它使用相同的java對象實例作爲流中的處理器?也許你可以用一些示例流XML來澄清你的問題。 –