2015-02-05 87 views
1

我正在Linux上运行mule-standalone-3.5.0上的流,并试图了解在手动服务器关闭的情况下会发生什么情况。Mule手动关机是否允许当前流程完成?

现在我看到当前正在运行的'主'流,这是一个递归循环,在关闭期间继续进行,足以完成当前消息的处理。我想知道这是否是'优雅关机'的一部分,或者只是祝你好运。

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

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

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

回答

0

每当骡接收关闭信号,它确保完成处理当前消息,以避免数据的丢失,然后开始关闭所有端点和流动,与线程池清理在一起。 HTH。

+0

可能是另一个问题。收到关机信号后,Mule如何知道它已完成处理当前消息? – 2015-02-18 16:11:40

+0

我不知道Mule是怎么做的,所以打开另一个线程是理想的,但我会假设Mule会跟踪内存中某处的消息。 – clare 2015-02-20 01:34:57

+0

Mule算出它的一个简单方法是处理每条消息,检查每个线程池中的线程数量。如果池中的线程数量等于它启动的数量,那意味着当前没有消息正在处理。 – 2015-02-22 09:34:33

相关问题