我有一个使用 express 框架开发的 API 服务器,现在我正在使用 Claudia 将它们部署到 AWS Lambda。一切进展顺利并已部署。
新版本的 Claudia 设置 callbackWaitsForEmptyEventLoop=false 并且在发送响应后退出我的 API。我正在执行一些任务,例如在发送响应后发送通知和电子邮件,现在这些任务没有被执行。
我无法找到如何使用 Claudia 在 lambda 上下文中设置参数来重置上述标志。有可能吗?
基本上,我按照以下链接使用 claudia 将现有的 express 应用程序移植到 AWS lambda。
https://claudiajs.com/tutorials/serverless-express.html
应用部署得很好,只是我想在 lambda 上下文中重置该标志,而我无法从 express 应用中做到这一点。
const express = require('express');
const app = express();
app.get('/events/number/:number/value', async (request, response) => {
response.json(request.params);
console.log('start: ', new Date());
await wait(1000);
console.log('end: ', new Date());
});
调用 response.json 后,会记录开始日期,但 lambda 不会等到执行“等待”承诺。它被执行并在下一个函数调用中记录结束日期。