2017-05-29 46 views
0

是否可以停止/啓動在同一個mule運行時中部署的多個應用程序中正在運行的流?如何使用Groovy腳本在多個應用程序中停止/啓動Mule流

看起來我們需要爲每個應用程序分別編寫Groovy腳本以停止/啓動。有人可以幫我理解嗎?

代碼片段: -

<scripting:component> 
    <scripting:script engine="groovy"> 
     muleContext.registry.lookupFlowConstruct('targetFlow').start() 
    </scripting:script> 
    </scripting:component> 

回答

0

下面是說明:

muleContext.registry.lookupFlowConstruct(<flowname>).start() 

這是Groovy腳本,如果這個過程是在停止condition.'targetFlow開始流」是名你想要開始的流程。這是檢查進程停止或開始的進程狀況的良好實踐。

如果你想停止流程,你可以使用下面的代碼。這將停止指定的過程。通過在應用程序中編寫Groovy腳本

if(muleContext.registry.lookupFlowConstruct(<flowname>).isStarted()) 
{ 
muleContext.registry.lookupFlowConstruct(<flowname>).stop(); 
} 
else 
{ 
flowVars.status='Process already in stopped condition'; 
} 
+0

我能夠啓動/啓動流沒有任何問題,但問題是我能夠做到這一點只有在應用程序,即我的流量和Groovy腳本應在同一項目中可用。 是否可以在1個mule應用程序中使用Groovy腳本,並嘗試控制可在其他應用程序中使用的流? – Som

+1

@Sstest我不這麼認爲。它會破壞運行時提供的封裝。我想你將不得不在一個應用程序中提供一個API(f.e. HTTP),並從另一個應用程序調用它。 – Yevgeniy

+0

@Sstest創建一個單獨的API來啓動和停止在相同或不同的JVM Box中運行的mule流! –

0

我們可以啓動/停止流動,不能跨應用程序完成,因爲這是工作的MuleContext基礎上。以下是更簡單的方法。

<scripting:component> 
    <scripting:script engine="groovy"> 
     muleContext.registry.lookupFlowConstruct('targetFlow').start() 
    </scripting:script> 
</scripting:component> 
相關問題