我有一个Lambda worker函数列表(比如1000),每个函数同时运行并完成它的工作。为了弄清楚所有工人的最终结果,我想出了这个想法。
在开始作业并生成Lambda工作器函数之前,我在DynamoDB中保存了一条记录,例如两个属性:
total_number_of_jobs
jobs_completed
(最初设置为0)在完成每个Lambda worker函数后,它将继续将属性jobs_completed
递增1。然后阅读记录并检查total_number_of_jobs
是否等于jobs_completed
,如果是,则在SQS中记录。
我的问题是:
我会在UpdateItem API调用中更新计数器jobs_completed
,如下所示:
SET jobs_completed = jobs_completed + :incr_by
其中incr_by
等于1
。
答案 0 :(得分:2)
只要您使用DynamoDB原子计数器(如示例所示),并检查UpdateItem调用的返回值而不是运行单独的查询,那么您提出的解决方案应该可以正常工作。