多个 Lambda 回调是否可能
Are Multiple Lambda callbacks possible
我有一个 lambda/server less 函数,它将执行多个 API 调用,这需要一些时间。我想在每个任务完成时更新前端的用户(进度条样式),但我知道发送回信息的唯一方法是回调函数,我只能在整个过程结束时使用一次.
有没有发送多个回调的方法?
提前致谢。
不可以,您只能调用一次 AWS Lambda 回调。
因此您只能收到一次结果:完成或失败时。
这是相关的 documentation 说:
When the callback is called, AWS Lambda continues the Lambda function
invocation until the event loop is empty.
这意味着回调调用后 - 您将收到响应。但是,函数可以稍后完成它的工作,但是您将无法再从函数中获取任何新数据。
此外,记住这一点非常重要,当您调用 Lambda 时,您实际上是在调用 stateless 容器。所以不可能保存状态然后在下次调用时读取它。您永远不应保存和依赖该容器内保存的任何数据。
可能的解决方案是将您的作业分成几个块,然后将每个块发送给单独处理。然后,在收到有关块成功处理的响应后,您可以更新进度条。
我有一个 lambda/server less 函数,它将执行多个 API 调用,这需要一些时间。我想在每个任务完成时更新前端的用户(进度条样式),但我知道发送回信息的唯一方法是回调函数,我只能在整个过程结束时使用一次.
有没有发送多个回调的方法?
提前致谢。
不可以,您只能调用一次 AWS Lambda 回调。 因此您只能收到一次结果:完成或失败时。
这是相关的 documentation 说:
When the callback is called, AWS Lambda continues the Lambda function invocation until the event loop is empty.
这意味着回调调用后 - 您将收到响应。但是,函数可以稍后完成它的工作,但是您将无法再从函数中获取任何新数据。
此外,记住这一点非常重要,当您调用 Lambda 时,您实际上是在调用 stateless 容器。所以不可能保存状态然后在下次调用时读取它。您永远不应保存和依赖该容器内保存的任何数据。
可能的解决方案是将您的作业分成几个块,然后将每个块发送给单独处理。然后,在收到有关块成功处理的响应后,您可以更新进度条。