Возможны ли множественные лямбда-колбэки - PullRequest
2 голосов
/ 31 мая 2019

У меня есть функция без лямбды / сервера, которая будет выполнять несколько вызовов API, что займет некоторое время. Я хочу обновлять пользователя во внешнем интерфейсе по мере выполнения каждой задачи (стиль индикатора выполнения), но единственный способ отправить информацию обратно - это функция обратного вызова, которую я могу использовать только один раз в конце всего процесса .

Есть ли способ отправить несколько обратных вызовов?

Заранее спасибо.

1 Ответ

3 голосов
/ 31 мая 2019

Нет, вы можете позвонить в AWS Lambda только один раз. Таким образом, вы можете получить результат только один раз: когда это сделано или не удалось.

Вот что связано документация говорит:

Когда вызывается обратный вызов, AWS Lambda продолжает функцию Lambda. вызов до тех пор, пока цикл обработки событий не станет пустым.

Это означает, что после обратного звонка - вы получите ответ. Однако функция может завершить свою работу позже, но вы больше не сможете получать новые данные из функции.

Кроме того, очень важно помнить, что когда вы звоните в Lambda, вы на самом деле делаете вызов в контейнер без состояния . Поэтому невозможно сохранить состояние и затем прочитать его при следующем вызове. Вы никогда не должны сохранять и полагаться на какие-либо данные, сохраненные внутри этого контейнера.

Возможным решением для вас может быть разделение вашей работы на несколько кусков и отправка каждого куска для обработки отдельно. Затем, получив ответы об успешной обработке чанка, вы можете обновить индикатор выполнения.

...