我使用的是Apache Camel,並試圖創建工作流中每條消息處理歷史記錄。駱駝:跟蹤使用分離器時的交換歷史
對於簡單的直通式工作流,消息進入後,只需幾個步驟即可處理,然後離開,這可能非常簡單,只需保留交換機的順序日誌。我可以通過編寫一個自定義的TraceEventHandler來完成此操作,該操作在每個交易所都會被調用,並允許我進行日誌記錄。
但是,如果涉及到分離器,我不知道如何計算任何給定交換的來源。我可以保留我自己的交易日誌,但對於分割者來說,並非所有以前的活動都是當前交易所的祖先。也就是說,如果傳入的消息被拆分成part1和part2,然後分別進行處理,我不想在計算part2的歷史時考慮part1的處理。
一個TraceEventHandler有以下方法:
@Override
public void traceExchange(ProcessorDefinition<?> node, Processor target,
TraceInterceptor traceInterceptor,Exchange exchange) throws Exception {
}
而且我預計會有一個交換法像Exchange getPreviousExchange()
,我可以內部traceExchange打電話,但我能找到這樣的事情。
有什麼建議嗎?如果有更好的方法來做到這一點,我還沒有結婚使用自定義的TraceEventHandler。
謝謝。