这是我的问题:
我必须将候选对象与db中的数百万其他候选者的某些标准进行比较。由于lambda只允许执行5分钟,因此会导致超时。
我的解决方案:
我打算与10,000个候选人进行比较,因此我必须调用10个lambda函数(通过SNS)来处理100,000个候选者,然后在每个DynamoDB表中保存每个lambda的结果。但是如何在所有lambda函数完成处理时获得回调,以便我可以收集单个lambda的结果,然后计算最终结果。如何实现这一点,还是有更好的方法来实现我的目标。非常感谢任何帮助。
答案 0 :(得分:1)
我不确定AWS Lambda是否真的适合您的用例。但是,只关注问题的主要部分,您可以使用DynamoDB Atomic Counters来确定所有处理何时完成。您将执行以下操作:
numberOfLambdaCalls
属性字段设置为您要启动的并发执行次数,completedLambdaCalls
属性设置为0
。completedLambdaCalls
属性。if numberOfLambdaCalls == completedLambdaCalls
之类的处理的结果,如果是,则执行触发响应所需的任何操作。