我有一个不带lambda / server的函数,它将执行一些API调用,这将需要一些时间。我想在每个任务完成时(进度条样式)更新前端的用户,但是我知道向回发送信息的唯一方法是回调函数,该函数在整个过程结束时只能使用一次
是否可以发送多个回调?
谢谢。
答案 0 :(得分:3)
否,您只能调用一次AWS Lambda回调。 因此,您只能收到一次结果:完成或失败。
这里有相关的documentation说:
调用回调时,AWS Lambda继续执行Lambda函数 调用直到事件循环为空。
这意味着在调用回调之后-您将收到响应。但是,功能可以稍后完成工作,但是您将无法再从功能中获取任何新数据。
此外,记住非常重要的一点是,当您调用Lambda时,您实际上是在调用 stateless 容器。因此,无法保存状态然后在下一次调用时读取它。您永远不应保存并依赖保存在该容器内部的任何数据。
可能的解决方案是将您的工作分成几个块,然后分别发送每个块进行处理。然后,在收到有关成功处理块的响应后,您可以更新进度条。