【发布时间】:2016-11-09 22:57:49
【问题描述】:
我正在运行一个带有 mongo 连接池的守护进程。它运行了好几天,但最终它崩溃了,并且每个后续请求都会收到此错误:
MongoError: 服务器实例池被破坏
代码类似这样:
var MongoClient = require('mongodb').MongoClient;
var express = require('express');
var app = express();
MongoClient.connect(config.mongo.url, function(err, db) {
app.use('/', function(req, res, next) {
db.collection('somecollection').find({}).toArray(function(err, result) {
console.log(result);
});
})
var server = require('http').Server(app);
server.listen(config.worker.port, function() {
var address = server.address();
logger.info({
address: address.address,
port: address.port
}, 'New Worker created');
});
});
重新启动进程可以解决问题,但我希望应用程序以某种方式优雅地重新连接并重置那里的“db”对象。
【问题讨论】:
-
!我知道这个问题很老,但你是如何解决这个问题的?有什么建议可以给我吗?