Mule 手动关闭是否允许当前流程完成?

Does a Mule manual shutdown allow the current flow to complete?

我正在 运行在 Linux 上运行 mule-standalone-3.5.0 的流程,并试图了解在手动关闭服务器的情况下会发生什么。

现在我看到当前 运行ning 'main' 流程是一个递归循环,在关机期间继续进行,足够长的时间来完成当前消息的处理。我想知道这是 'graceful shutdown' 的一部分还是只是祝你好运。

它确实尝试再次调用自己,我通过检查我知道很快停止的流的 运行 状态来停止。

def flow = muleContext.getRegistry().lookupFlowConstruct("initFlow")

if ((flow.isStopped() || flow.isStopping())) {
     message.setInvocationProperty('runState', 'stopping')
}
else {
     message.setInvocationProperty('runState', 'running')   
} 

每当 Mule 收到关闭信号时,它都会确保完成当前消息的处理以避免数据丢失,然后开始关闭所有端点和流,同时清理线程池。 HTH.