在我的lambda函数中,我试图在发送回调时立即关闭mongo连接.但它有一个问题.
db.close()东西工作完美.我认为lambda重用了所有函数的连接,因为我在处理程序的顶部打开了连接:
// Connect to database
mongoose.connect(process.env.DATABASE_URL);
const handleCreateUser = async (event, context, callback) => {
// eslint-disable-next-line no-param-reassign
context.callbackWaitsForEmptyEventLoop = false;
const data = JSON.parse(event.body);
const { user, userProfile } = data;
await createUser({ callback, user, userProfile });
};
Run Code Online (Sandbox Code Playgroud)
知道怎么解决这个问题吗?我们真的必须在此时关闭连接吗?
我曾经被告知,运行插入并让插入失败比检查数据库条目是否存在然后插入(如果它丢失)更快.
我还被告知,大多数数据库都经过大量优化,无法读取阅读而不是写入,因此快速检查不会比慢速插入快吗?
这是预期碰撞次数的问题吗?(IE只有在条目已经存在的可能性很小的情况下插入才会更快.)它是否依赖于我正在运行的数据库类型?就此而言,有一种方法会不断向我的错误日志中添加插入错误,这是不好的做法吗?
谢谢.