Как экземпляр Cloud Function обрабатывает несколько запросов? - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь обернуть голову вокруг экземпляров Cloud Function и как они работают.

Я спрашиваю о примере функции HTTP, но я думаю, что концепция применима к любому виду функции.

  • Допустим, у меня есть эта облачная функция, которая обрабатывает SSR для моего приложения, с именем ssrApp.
  • И давайте предположим, что для завершения каждого требуется 1 second время получения запроса.
  • Когда облачная функция получает 1-й запрос, она запускает экземпляр, чтобы ответить на него.

ВОПРОС

Как этот экземпляр ведет себя при поступлении нескольких запросов?

От: https://cloud.google.com/functions/docs/concepts/exec

Каждый экземпляр функции обрабатывает только один одновременный запрос одновременно. Это означает, что пока ваш код обрабатывает один запрос, нет возможности направить второй запрос на тот же экземпляр. Таким образом, исходный запрос может использовать весь объем ресурсов (ЦП и память), который вы запрашивается.

Означает ли это, что в течение этого 1 second, когда моя функция ssrApp работает, если кто-то нажимает на URL моего приложения, гарантируется, что Cloud Function раскрутит другой экземпляр за этот второй запрос? Имеет ли значение, если функция выполняет только sync вызовов или несколько async вызовов при ее выполнении? Я имею в виду, может ли async вызвать свободный экземпляр для параллельного ответа на другой запрос?

1 Ответ

1 голос
/ 03 апреля 2020

Означает ли это, что в течение той 1 секунды, когда работает моя функция ssrApp, если кто-нибудь попадет на URL моего приложения, гарантируется, что облачная функция запустит другой экземпляр для этого второго запроса?

Это общее поведение, хотя нет никаких гарантий относительно планирования.

Имеет ли значение, если функция выполняет только вызовы syn c или какой-то асин c звонки в его исполнении? Я имею в виду, может ли асин c вызвать свободный экземпляр для параллельного ответа на другой запрос?

Нет, это не имеет значения. Если контейнер ожидает асинхронного вызова c, он все еще считается использованным.

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