在我的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 });
};
有任何修复此问题的想法吗?我们真的必须在此时关闭连接吗?