2015-02-05 60 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

相關問題