【发布时间】:2019-05-03 16:30:25
【问题描述】:
假设我有一个对我的 Lambda 的请求队列,在 lambda 内部可能有一个需要 500 毫秒的外部服务调用,它被包裹在 async await 中
async callSlowService(serializedObject: string) Promise<void>{
await slowServiceClient.post(serializedObject);
}
我是否应该期望我的 Lambda 实例在等待慢速调用时从队列中提取另一个请求?我知道它还会启动新的 Lambda 实例,但这不是我在说单个实例上的交错请求。
我问是因为我认为它应该这样做,但是我正在使用睡眠功能和负载生成器进行测试,但它没有发生。我的代码实际上是这样的:
async someCoreFunction() Promise<void>{
// Business logic
console.log("Before wait");
await sleep(2000);
console.log("After wait");
}
}
const sleep = (milliseconds) => {
return new Promise(resolve => setTimeout(resolve, milliseconds))
};
虽然“等待前”和“等待后”语句之间肯定需要 2 秒,但这段时间内没有写入新日志。
【问题讨论】:
标签: node.js aws-lambda