PHP中的自动mongoDB查询重试机制

时间:2014-05-21 20:18:42

标签: php mongodb

是否有人拥有PHP库或者可以指向一些编写良好的代码,这些代码允许x次重试尝试的自动重试功能,如果它们碰巧失败,那么在重试mongoDB查询之间会有一个定义的延迟? (查询,更新,插入,删除等查询)。

1 个答案:

答案 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