Когда повторяются облачные функции? - PullRequest
1 голос
/ 18 июня 2019

Включив повторные попытки для моей облачной функции, мне интересно, во всех случаях, что она будет повторяться.

Этот раздел кажется мне противоречивым. Следовательно, я предполагаю, что я не понимаю этого.
Я подумал, что из следующего следует, что функция с включенным «Повторить при сбое» будет также повторять при фатальных ошибках:

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

Однако какой смысл отлавливать ошибки и использовать Promise.reject в этом случае?
Я пытался использовать Promise.reject для отмены повторных попыток моей облачной функции, однако этого не произошло.

return Promise.reject(..) // will retry
throw Error() // will retry

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

вам следует соответствующим образом изменить свой код, если вы поддерживаете фатальные ошибки

Какой смысл этого раздела в документации и что мне действительно нужно делать сейчас?

1 Ответ

0 голосов
/ 18 июня 2019

Облачные функции повторит функцию, если она выдаст какую-либо ошибку в конце. Это включает отклоненное обещание, выброшенное исключение или тайм-аут.

Если вы не хотите, чтобы функция повторялась, перехватите все ошибки и верните успешное обещание. Если вы знаете, что ошибка никогда не исчезнет при повторной попытке в будущем (например, при неправильных входных значениях), не принимайте меры для ее повторной попытки. В противном случае, вы просто будете платить за все повторные попытки, которые не работают.

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

Не стесняйтесь использовать кнопку «Отправить отзыв» на любой странице документации, если вы находите эту документацию запутанной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...