【问题标题】:Are Multiple Lambda callbacks possible是否可以进行多个 Lambda 回调
【发布时间】:2019-10-17 02:53:10
【问题描述】:
我有一个 lambda/serverless 函数,它将执行几个 API 调用,这需要一些时间。我想在每个任务完成时更新前端的用户(进度条样式),但我知道发送回信息的唯一方法是回调函数,我只能在整个过程结束时使用一次.
有没有办法发送多个回调?
提前致谢。
【问题讨论】:
标签:
javascript
node.js
aws-lambda
serverless
【解决方案1】:
不可以,您只能调用一次 AWS Lambda 回调。
所以你只能收到一次结果:当它完成或失败时。
这里是相关的documentation 说:
当回调被调用时,AWS Lambda 继续 Lambda 函数
调用直到事件循环为空。
这意味着在回调调用之后 - 您将收到响应。但是,函数可以稍后完成它的工作,但你将无法再从函数中获取任何新数据。
此外,请务必记住,当您调用 Lambda 时,您实际上是在调用 stateless 容器。所以不可能保存状态然后在下次调用时读取它。您永远不应保存和依赖保存在该容器内的任何数据。
您的可能解决方案可以将您的工作分成几个块,然后分别发送每个块进行处理。然后,在收到有关成功处理块的响应后,您可以更新进度条。