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')
}
可能是另一个问题。收到关机信号后,Mule如何知道它已完成处理当前消息? – 2015-02-18 16:11:40
我不知道Mule是怎么做的,所以打开另一个线程是理想的,但我会假设Mule会跟踪内存中某处的消息。 – clare 2015-02-20 01:34:57
Mule算出它的一个简单方法是处理每条消息,检查每个线程池中的线程数量。如果池中的线程数量等于它启动的数量,那意味着当前没有消息正在处理。 – 2015-02-22 09:34:33