第 5 asp.net 中的哪些例外可以/应该被视为"permanent"与 "non permanent" ?



如果更新读模型中的投影的eventandler抛出异常,这是一件不好的事情。

在这种情况下,我想区分"永久"one_answers";以及"非永久性";例外。与"permanent"异常,我的意思是异常,很可能是由错误的代码引起的,如果我尝试在此事件处理程序上重试处理事件,将会一次又一次地抛出。带有"非永久性"的;我指的例外是"暂时的"例如Io/网络/…相关异常,这些异常不是由错误代码引起的,在事件最终成功处理之前重试是有意义的。

虽然我可以想出的例子,我会考虑一个或另一个(如InvalidOperation或IOException)是否有任何列表或建议哪个异常(在这种情况下,在asp.net 5堆栈)应该考虑什么?

一种选择是使用Polly添加一个重试或断路器策略,该策略自动重试所有异常(每个读取模型),并且在X次重试后,禁用失败的特定读取投影或整个读取模型。

问题是,当读取模型无法更新时,您希望发生什么。你:

  • 关闭特定投影并允许其他投影更新?
  • 关闭整个读模型
  • 或者输入"I am out of sync";模式?

我认为这一切都取决于你如何构建你的读取模型和你的商业案例是什么。

相关内容

最新更新