跟踪事件处理器-源于事件处理程序的重试执行

时间:2020-07-01 19:04:59

标签: axon

我正在尝试为ErrorHandler配置TrackingEventProcessor,以便重试我的@EventHandler带注释的方法中的任何异常。 当前正在使用Axon Framework 4,并正在寻找实现方法。

1 个答案:

答案 0 :(得分:0)

在这种情况下,我建议将PropagatingErrorHandler设置为ListenerInvocationErrorHandler。 知道给定事件处理器中有两个错误处理级别,即:

  1. ListenerInvocationErrorHandler,捕获从您的@EventHandler带注释的方法中引发的异常。默认情况下为LoggingErrorHandler实例,该实例记录异常。
  2. ErrorHandler,捕获给定EventProcessor的事务异常。默认值为PropagatingErrorHandler,它会抛出异常。

如果已配置的TrackingEventProcessor引发异常,则EventProcessor(TEP)ErrorHandler实现将重试具有一定(不可配置)补偿的事件。

如果您想重试所有异常(无论如何,这可能是值得商bat的方法),因此您需要输入TEP的重试方案。为此,您只需将ListenerInvocationErrorHandler配置为也是PropagatingErrorHandler。我也建议您阅读Reference Guide,以更好地了解如何进行配置。