我需要以编程方式从另一个流启动或停止流或端点。可以这样做吗?是否存在邮件丢失的风险?
<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>
答案 0 :(得分:3)
经过一些研究后,我发现在我的情况下,最好的选择是启动/停止与我想要控制的端点关联的连接器。
<script:component>
<script:script engine="groovy">
muleContext.getRegistry().lookupConnector('connectorName').start() // or stop()
</script:script>
</script:component>
此方法的缺点是与连接器关联的所有端点都会受到影响。如果这是一个问题,每个端点都应该有自己的连接器。
答案 1 :(得分:0)
您可以使用JMX控制Mule移动部件的生命周期:使用JConsole查找您需要从脚本部件访问的MBean。