2017-05-29 9 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() 

これは、プロセスが停止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つのアプリケーションでGroovyスクリプトを使用でき、他のアプリケーションで使用できるフローを制御できますか? – Som

+1

@Sstestそうは思わない。ランタイムによって提供されるカプセル化が中断されます。私はあなたが1つのアプリケーションでAPI(f.e. HTTP)を提供し、他のアプリケーションから呼び出さなければならないと思います。 – Yevgeniy

+0

@Sstest別のAPIを作成して、同じまたは別のJVM Boxで動作するミュールフローを開始および停止します。 –

0
我々が開始することができます

/アプリケーション内でグルーヴィーなスクリプトを書くことで流れを停止し、それがMuleContext的に取り組んでいるので、アプリケーション間で行うことはできません。以下は、より簡単なアプローチになります。

<scripting:component> 
    <scripting:script engine="groovy"> 
     muleContext.registry.lookupFlowConstruct('targetFlow').start() 
    </scripting:script> 
</scripting:component> 
関連する問題