我使用的是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。
谢谢。