答案 0 :(得分:1)
我认为没有必要在这个问题上变得复杂。将整个东西包裹在try catch中,将其包裹一段时间<重试计数,你就完成了。
如果你想以不同的方式处理它们,你可以获得更大的智能和陷阱来处理不同类型的错误,如果它是真正的数据错误,则无需重试。
确保您仍然跟踪每个异常,以跟踪除超时之外的其他错误。
答案 1 :(得分:0)
您可以查看面向方面编程(AOP)框架,以最小的努力管理重试逻辑。一个这样的框架是AspectF,它松散地实现了AOP原则。它易于理解和使用。
答案 2 :(得分:0)
基本原则是您重试因任何可能不再成立的原因而失败的任何事务。因此,如果事务由于死锁或与数据库服务器的错误连接而失败,则应在每次重试之间使用排序休眠重试几次。 这完全取决于您的交易定义明确。
根据您的逻辑,您可以在“页面请求级别”实施重试。
如果您没有定义明确的事务,我认为您的代码中没有任何“魔法可以主导”来对其进行排序。
如果你没有使用任何事务,你可以尝试编写所有的sql,这样可以安全地运行它多次,然后只需要一个命令对象的自定义子类,在需要时可以恢复。