我正在浏览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'会导致异步行为..将进行更多测试