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