Я просматриваю очередь AmazonMQ, чтобы найти глубину (маленькие сообщения по 1 КБ), затем вызываю лямбду для каждого сообщения, чтобы применить магию. Но кажется, что первая начальная лямбда должна «жить» до последней вызванной лямбдыЗаканчивается ..
Этот код не работает:
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);
и дождусь каждой лямбды.
Но что, если выполнение завершится для всех лямбд дольше 300 с, тогда у меня проблемы ..
Есть ли способ обойти это или возможно применить какой-то другой шаблон проектирования?
Обновление Похоже, установка InvocationType = 'Event' вызывает асинхронное поведение .. проведет дополнительное тестирование