当使用nservicebus时,如果其中一个事件处理程序在pub sub期间抛出异常会发生什么?
1。)所有事件处理程序是否回滚并重新执行事件EX(事件处理程序1成功但事件处理程序2抛出异常)?
OR
2。)成功不再执行的那些是否只有抛出异常的事件处理程序?
答案 0 :(得分:0)
事件在它们自己的事务上下文中运行。这意味着,只有失败的事件才会重试该节点(#2)
根据我对nServiceBus的理解,一个节点是一个队列,它可以为一个事件提供多个处理程序,但它只会为该一个节点中的所有处理程序获取一个事件消息。
如果其中一个处理程序抛出异常,则事务将回退并重新尝试节点中的所有处理程序。