2012-10-19 80 views
1

我需要以編程方式啓動或停止來自另一個流量的流量或終點。這可以做到嗎?有消息丟失的風險嗎?Mule啓動/停止流量/終點3.3.0

<flow name="control> 
    <vm:inbound-endpoint path="in"> 
    <script:component> 
    <!-- start/stop --> 
    </script:component> 
</flow> 

<flow name="startable-stoppable> 
    <any-transport:inbound-endpoint/> 
    <component/> 
</flow> 

回答

3

經過一番研究,我發現在我的情況下,最好的選擇是啓動/停止與我想控制的端點相關的連接器。

<script:component> 
    <script:script engine="groovy"> 
    muleContext.getRegistry().lookupConnector('connectorName').start() // or stop() 
    </script:script> 
</script:component> 

這種方法的缺點是與連接器相關聯的所有端點都將受到影響。如果這是一個問題,每個端點都應該有自己的連接器。

0

您可以控制騾子移動使用JMX部件的生命週期:使用JConsole中找出的MBean,你需要從你的腳本組件來訪問。

+0

不知道這是否是我需要的,看起來像您的解決方案過濾消息,以防止它的處理。在我的情況下,入站端點根本不應該使用消息。 – Daniel

+0

你說得對,我改變了我的迴應。 –