【发布时间】:2015-07-04 17:04:56
【问题描述】:
我有一个通过以下脚本启动的 Mule 流程:
muleContext.registry.lookupFlowConstruct('targetFlow').start()
但是,我希望仅在流程停止时执行脚本。有什么方法可以让我在开始之前在脚本中进行检查?
【问题讨论】:
标签: java groovy mule mule-studio
我有一个通过以下脚本启动的 Mule 流程:
muleContext.registry.lookupFlowConstruct('targetFlow').start()
但是,我希望仅在流程停止时执行脚本。有什么方法可以让我在开始之前在脚本中进行检查?
【问题讨论】:
标签: java groovy mule mule-studio
您可以使用此方法来验证流程是否已启动。希望能帮到你。
AbstractFlowConstruct f = (AbstractFlowConstruct) muleContext.getRegistry().lookupFlowConstruct("flowName");
if (f.isStopped()){
// start flow
}
// it can also be used : f.isStarted()
【讨论】:
或者你可以使用 Groovy 组件来检查状态并将你的简单脚本如下:-
<scripting:component doc:name="Groovy">
<scripting:script engine="Groovy"><![CDATA[
if(muleContext.registry.lookupFlowConstruct('yourFlowName').isStopped())
{
muleContext.registry.lookupFlowConstruct('yourFlowName').start();
}
return message.payload;
]]>
</scripting:script>
</scripting:component>
注意 Groovy 脚本是实现此目的的最简单方法
【讨论】: