什么是Axon4标准的异常处理机制? Addiotnaally - 你如何确保如果在佐贺的事件之一期间例外occours(在状态之间),先前的状态被回滚?
任何例子将有助于。
这是你在这里问PRASHANT,与一对夫妇的答案给它的一个相当宽泛的问题。此外,您问两个问题,一个是什么样的异常处理方法是和两个如何应对传奇故事例外。
因此,当你在谈论传奇故事和事件,我要带你想知道周围的事件异常处理过程中的立场。让我先回答你的第一个问题在这里。正如你可能参考指南中已阅读,轴突使用什么所谓的EventProcessor
作为技术机制获取事件的“事件处理组件”和佐贺实例。
所述EventProcessors
允许两个不同级别的异常处理:1.当一个异常在@EventHandler
/ @SagaEventHandler
注释功能发生时,这可以在ListenerInvocationErrorHandler
捕获。 2.当异常在EventProcessor
发生时,这可以在ErrorHandler
捕获。
这两种方法都能在轴突4通过与EventProcessingConfigurer
处理,并呼吁各自的寄存器的功能,它允许您设置一个全局默认或调整这些事件平均处理器进行设置。缺省值分别是LoggingErrorHandler
和PropagatingErrorHandler
。
第二个问题你问的是关于发生异常时如何在佐贺回滚状态。我想在这里给你的建议是,在接收到一个事件,你第一个也是唯一后将执行其他操作改变状态。
其他操作,如调用第三方服务或发布命令。这些操作可能会因为你已经注意到失败,一个例外。然而它不能回滚佐贺的状态都没有。事件已经发生了。已经发生后操作失败并不能改变事件的事实,这一事实。
因此,我做什么建议是,如果发生这样的异常在执行补偿动作。