Aws lambda AWS事件驱动批处理,带有必须成对的异步输入
我有两张DynamoDB表格中的数据。让我们称之为小部件和混乱。每个小部件“有一个”Kerfuffle,但一个Kerfuffle可能属于多个小部件。现在通常,我会说我可以使用DDB流启动lambda,将我的小部件Kerfuffle对发布到SNS。然而,小部件和它们的混乱不一定同时出现。事实上,这种混乱可能在小部件之前或之后5-10分钟出现 因此,看起来我不能在小部件或正在创建的Kerfuffle上使用lambda触发器,因为另一半可能不存在(我也不想发送重复的小部件)Aws lambda AWS事件驱动批处理,带有必须成对的异步输入,aws-lambda,amazon-dynamodb,amazon-dynamodb-streams,Aws Lambda,Amazon Dynamodb,Amazon Dynamodb Streams,我有两张DynamoDB表格中的数据。让我们称之为小部件和混乱。每个小部件“有一个”Kerfuffle,但一个Kerfuffle可能属于多个小部件。现在通常,我会说我可以使用DDB流启动lambda,将我的小部件Kerfuffle对发布到SNS。然而,小部件和它们的混乱不一定同时出现。事实上,这种混乱可能在小部件之前或之后5-10分钟出现 因此,看起来我不能在小部件或正在创建的Kerfuffle上使用lambda触发器,因为另一半可能不存在(我也不想发送重复的小部件) 关于如何处理这个问题有什么
关于如何处理这个问题有什么建议吗?打字很难。让widget=
A
和kerfuffle=B
A
的和新B
的通知。对于每个A
通知,您检查B
是否存在。如果它没有停止。否则,处理该A
。对于每个B
通知,您将收集与之匹配的所有当前A
,并对其进行处理。请注意,如果要避免多次处理A
,而它们的触发非常接近B
,并且两个进程都成功,则需要在此处进行某种锁定
t
分钟),查找所有未处理的a
。处理所有具有匹配的B
,并将那些A
标记为已处理
- 您处理一堆实际上无关紧要的通知,因为您无法对还没有
的B
采取行动a
- 您增加了处理两个可能相互干扰的独立流的复杂性,除非您保持单线程处理
- 您将处理延迟
分钟。这可能无关紧要或极不实际,具体取决于您的应用程序t