首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何判断Lambdas何时完成SQS中所有消息的处理

如何判断Lambdas何时完成SQS中所有消息的处理
EN

Stack Overflow用户
提问于 2022-10-16 10:02:58
回答 1查看 41关注 0票数 0

目前,我有一个触发Lambda (A)的进程,它具有逻辑,可以找出(通过队列)运行另一个lambda (B)所需的客户。对于任何运行,由Lambda在SQS队列上放置3k到4k消息,由Lambda获取以进行处理。当Lambda与外部Api通信时,将Lambda的并发设置为10,这样就不会使Api超载。整个过程在35到45分钟内完成。

我的问题是如何判断什么时候所有的处理都完成了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-16 10:37:03

如果您不需要及时的信息,您可以查看SQS报价SQS报价度量,例如:

ApproximateNumberOfMessagesVisible 可从队列中检索的消息数量。报告标准:如果队列处于活动状态,则报告非负值。

ApproximateNumberOfMessagesNotVisible 正在运行的消息数量。如果消息已发送到客户端,但尚未被删除或尚未到达其可见窗口的末尾,则视为正在运行。报告标准:如果队列处于活动状态,则报告非负值。

如果这两个指标之和为零,队列中就没有消息,应该进行处理。

如果您需要更及时的信息,消息的生产者可以在DynamoDB中增加一个计数器项,并添加消息的数量,并且每个Lambda都会减少计数器的数量。然后,可以使用过滤器将Lambda添加到该表的DynamoDB流中,并在值再次变为零时执行一些操作。然而,这要复杂得多。

第三种选择是将整个事件转换为一个逐步函数,并使用带有并行化因子的映射状态来执行任务。缺点是它可以处理的列表的长度是有限的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74086155

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档