有2个连接选项可控制连接失败后mongo nodejs驱动程序如何重新连接
- reconnectTries:尝试重新连接#次(默认30次)
- reconnectInterval:服务器将在两次重试之间等待#毫秒(默认为1000毫秒)
mongo驱动程序文档上的参考
这意味着mongo默认会继续尝试连接30次,并在每次重试前等待1秒。这就是为什么您在30秒后开始看到错误的原因。
您应该根据自己的需要调整这两个参数,例如本示例。
var MongoClient = require('mongodb').MongoClient, f = require('util').format;MongoClient.connect('mongodb://localhost:27017/test', { // retry to connect for 60 times reconnectTries: 60, // wait 1 second before retrying reconnectInterval: 1000 }, function(err, db) { var col = db.collection('t'); setInterval(function() { col.insert({ a: 1 }, function(err, r) { console.log("insert") console.log(err) col.findOne({}, function(err, doc) { console.log("findOne") console.log(err) }); }) }, 1000) });这将尝试60次,而不是默认的30次,这意味着当它停止尝试重新连接时,您将在60秒后开始看到错误。
旁注:如果要阻止应用程序/请求在重新连接期到期之前等待,则必须传递option
bufferMaxEntries:0。这样做的代价是在短暂的网络中断期间请求也会中止。



