是否可以在同一个mule运行时中部署的多个应用程序中停止/启动正在运行的流程?
看起来我们需要为每个应用程序单独编写Groovy脚本以便停止/启动。有人可以帮我理解吗?
代码段: -
<scripting:component>
<scripting:script engine="groovy">
muleContext.registry.lookupFlowConstruct('targetFlow').start()
</scripting:script>
</scripting:component>
答案 0 :(得分:0)
以下是描述:
muleContext.registry.lookupFlowConstruct(<flowname>).start()
如果进程处于停止状态,这是启动流的groovy脚本.'targetFlow'是您要启动的流的名称。这是检查过程停止或启动过程的条件的一种很好的做法。
如果您想停止流程,可以使用下面的代码。这将停止指定的过程。
if(muleContext.registry.lookupFlowConstruct(<flowname>).isStarted())
{
muleContext.registry.lookupFlowConstruct(<flowname>).stop();
}
else
{
flowVars.status='Process already in stopped condition';
}
答案 1 :(得分:0)
我们可以通过在应用程序中编写groovy脚本来启动/停止流程,因为它在MuleContext的基础上工作,所以无法跨应用程序完成。以下是更简单的方法。
<scripting:component>
<scripting:script engine="groovy">
muleContext.registry.lookupFlowConstruct('targetFlow').start()
</scripting:script>
</scripting:component>
答案 2 :(得分:0)
它可以跨应用程序完成,不久前写了一篇关于此的博客文章。
它使用相同的命令,但随后放入应用程序并通过HTTP公开。
http://www.corralict.nl/how-to-start-stop-mule-flows-from-a-client-over-http/