如何解决MongoError:池在被 lambda 调用时被破坏,但不是被来自同一服务器的代码
今天早上突然,我们基于 lambda 的端点无法连接到基于 ec2 的 mongodb。它只会返回错误 { MongoError: pool destroyed
但是我的 nodejs 代码与 mongodb 位于同一 ec2 服务器中,可以毫无问题地访问 mongodb。下面是我们从每个 lambda 函数调用的 mongodb 连接代码。
const mongoose = require('mongoose');
mongoose.Promise = global.Promise;
let isConnected;
module.exports = connectToDatabase = () => {
if (isConnected) {
console.log('=> using existing database connection');
return Promise.resolve();
}
console.log('=> using new database connection');
return mongoose.connect('mongodb://123.456.789.123:27017/musleh-api')
.then(db => {
isConnected = db.connections[0].readyState;
});
};
const connectToDatabase = require("./../../db_mongo.js");
const handler = (req,res) => {
connectToDatabase().then(() => {
console.log("67 dlm connectToDatabase")
processSubmission(email,password).catch(function(err){
console.log("69 err");
console.log(err);
res.status(400).send({ success:false,msg: err.toString() });
return false;
})
});
}
大约半小时后,突然我们的 lambda 可以再次访问我们的 ec2 mongodb,没有任何问题。所以我们真的很困惑为什么会发生这种情况。有什么线索吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。