是否有人拥有PHP库或者可以指向一些编写良好的代码,这些代码允许x次重试尝试的自动重试功能,如果它们碰巧失败,那么在重试mongoDB查询之间会有一个定义的延迟? (查询,更新,插入,删除等查询)。
答案 0 :(得分:0)
我相信PHP mongodb驱动程序中已经有一些内置的查询重试机制:
最大重试次数已用尽,无法发送查询
代码:19
驱动程序将自动重试“普通”查询(而不是命令)a 如果第一次尝试由于某些原因失败了几次。这个 是在副本集故障转移期间导致更少的异常(尽管你 可能仍然需要处理一些)并掩盖瞬态 网络问题。
这也可能是由于司机无法重新连接造成的 全部到数据库(例如,如果数据库无法访问)。
来自:http://us2.php.net/class.mongocursorexception
我也相信Doctrine ODM也支持查询重试 - 有一些在线讨论,你可以在这里的代码中看到它:
https://github.com/doctrine/mongodb/blob/master/lib/Doctrine/MongoDB/Cursor.php
以下是设置调用的文档:
setRetryQuery(boolean | integer $ retryQuery)设置次数 在异常后重试查询。参数$ retryQuery
http://apigen.juzna.cz/doc/doctrine/mongodb/class-Doctrine.MongoDB.Configuration.html