AWS Lambda调用内部循环异步,无需等待未来

时间:2018-09-27 13:03:26

标签: java amazon-web-services aws-lambda

我正在浏览AmazonMQ队列以查找深度(小的1kb消息),然后为每条消息调用一个lambda以应用一些魔术。 但是,似乎第一个初始lambda必须“存活”,直到最后一个调用的lambda完成为止。

此代码无效:

InvokeRequest request = new InvokeRequest();
request.setFunctionName("MyLambda");
request.setPayload("{}");

for (int i=0; i<5; i++)
{
   lambda.invokeAsync(request);
} 

除非我按照此处的规定https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/basics-async.html 并使用Future<InvokeResult> future_res = lambda.invokeAsync(req);并等待每个lambda。

但是,如果要完成所有lambda的执行时间超过300秒,那我就麻烦了。

是否可以解决此问题,或者可以应用其他设计模式?

更新 好像设置InvocationType ='Event'会导致异步行为..将进行更多测试

0 个答案:

没有答案