我正在使用mongoosejs
连接到mongodb
,这是我的连接选项
const optionsMongoose = {
poolSize: 10,
bufferMaxEntries: 0,
connectTimeoutMS: 10000,
socketTimeoutMS: 45000,
family: 4
};
mongoose.connect(process.env.MONGO_URI,optionsMongoose);
,但是过了一段时间,对MongoDB
的所有请求将开始超时。在我的数据库监视工具中,我可以看到当前的活动连接为10,但是当前没有对服务器的请求。我确信我在连接选项上做错了。请帮我找出来吗?
答案 0 :(得分:1)
您尝试过keepAlive
和reconnectTries
吗?
mongoose.connect(myUri, {
socketTimeoutMS: 45000,
keepAlive: true,
reconnectTries: 10
});
尝试上述方法,看看是否有帮助。我们需要知道它是在关闭连接还是在您的code/find
发生问题的地方。
在keepAlive上:
对于长时间运行的应用程序,通常谨慎地启用keepAlive。 如果没有它,一段时间后您可能会开始看到“连接 似乎没有原因的“关闭”错误。如果是这样,请阅读后 为此,您可以决定启用keepAlive: