我正在使用mongoosejs
连接到mongodb
,这是我的连接选项
const optionsMongoose = {
poolSize: 10,
bufferMaxEntries: 0,
connectTimeoutMS: 10000,
socketTimeoutMS: 45000,
family: 4
};
mongoose.connect(process.env.MONGO_URI,optionsMongoose);
但是在一段时间之后,对MongoDB
的所有请求都将开始超时。在我的数据库监控工具中,我可以看到当前的活动连接是10,但是当前没有向服务器发出请求。我确信我在连接选项上做错了什么。请帮我找出来好吗?
发布于 2018-08-11 04:20:35
你试过keepAlive
和reconnectTries
吗?
mongoose.connect(myUri, {
socketTimeoutMS: 45000,
keepAlive: true,
reconnectTries: 10
});
尝试上面的方法,看看是否有帮助。我们需要知道它是否正在关闭连接,或者是您的code/find
出现了问题。
对于长时间运行的应用程序,启用keepAlive通常是谨慎的做法。如果没有它,在一段时间后,您可能会开始看到“连接关闭”错误,这似乎是没有原因的。如果是这样,在阅读本文后,您可能会决定启用keepAlive:
https://stackoverflow.com/questions/51738532
复制相似问题