运行 无服务器函数执行结束时的清理函数?
Run cleanup function at end of serverless function execution?
如果我在无服务器函数结束时不关闭数据库连接,我的脚本将挂起并超时。
我希望有一种方法可以 运行 在我的任何无服务器功能结束时执行清理功能,这将关闭活动的数据库连接等
module.exports.create = (event, context, callback) => {
user.insert({
//user details
}).then((results) => {
responseHelper.success(JSON.stringify(results), callback);
}, (error) => {
// Connection error
responseHelper.error(error, callback);
});
// I don't want to have this at the end of every function
// I'd rather run it in a cleanup step which runs on all functions
db.closeConnections();
}
首先,user.insert()
returns 一个 Promise 并在它之后立即调用 db.closeConnections()
可能会在您仍然需要它时关闭连接。要实现您想要做的事情,应该在 callback
参数之前调用 db.closeConnections()
。
或许您可以在辅助函数 responseHelper.success()
和 responseHelper.error()
中调用 db.closeConnections();
,然后再执行 callback
参数。我想这些函数只写一次并由所有 lambda 处理程序共享。
如果我在无服务器函数结束时不关闭数据库连接,我的脚本将挂起并超时。
我希望有一种方法可以 运行 在我的任何无服务器功能结束时执行清理功能,这将关闭活动的数据库连接等
module.exports.create = (event, context, callback) => {
user.insert({
//user details
}).then((results) => {
responseHelper.success(JSON.stringify(results), callback);
}, (error) => {
// Connection error
responseHelper.error(error, callback);
});
// I don't want to have this at the end of every function
// I'd rather run it in a cleanup step which runs on all functions
db.closeConnections();
}
首先,user.insert()
returns 一个 Promise 并在它之后立即调用 db.closeConnections()
可能会在您仍然需要它时关闭连接。要实现您想要做的事情,应该在 callback
参数之前调用 db.closeConnections()
。
或许您可以在辅助函数 responseHelper.success()
和 responseHelper.error()
中调用 db.closeConnections();
,然后再执行 callback
参数。我想这些函数只写一次并由所有 lambda 处理程序共享。