mongodb - MongoError:当被 lambda 调用时,池被破坏,但不是由来自同一服务器的代码
问题描述
今天早上突然我们基于 lambda 的端点无法连接到我们基于 ec2 的 mongodb。它只会返回错误{ MongoError: pool destroyed
但是我与 mongodb 位于同一 ec2 服务器内的 nodejs 代码可以毫无问题地访问 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,没有任何问题。所以我们真的很困惑为什么会发生这种情况。有什么线索吗?
解决方案
推荐阅读
- shell - 在 GNU find 中打印没有小数部分的秒数
- python - VSC Python:调试时出现anaconda问题
- delphi - Delphi dbGrid - 列名
- python - Optuna 多目标优化的最佳参数
- python - 使用 gekko 的约束多变量非线性回归
- highcharts - Highcharts - 条形图在 Y 轴上显示文本而不是数值
- python - Python - 将多个插入语句转换为一个
- r - 用 Plotly 绘制圆环图
- javascript - async/await 函数中的 Javascript async/await 函数
- c++ - C++ 模块的两步编译?