我正在浏览this博客和相关视频,试图在我的mongodb数据访问对象中实现重试机制。
本文的要点是构建数据访问例程,这些例程可以明智地选择在失败的情况下是否值得重试操作。我很高兴我理解文章的建议,但我发现很难用Java实现。
本文包含insertOne
操作的伪代码:
doc = {_id: ObjectId(), ...}
try:
insertOne(doc)
except network err:
try:
insertOne(doc)
except DuplicateKeyError:
pass # first try worked
throw
我的困难在于找出我有兴趣在except network err
语句中捕获的异常。 Mongo异常模型相当复杂,并且javadocs不清楚哪种情况会导致异常。
有没有人用Java实现这一点,并且可以指出我正确的方向,我需要关注哪些例外?