Наиболее эффективная структура для облачных функций в Firebase - PullRequest
0 голосов
/ 18 октября 2018

Есть ли разница в производительности между следующими двумя параметрами для функций, запускаемых в режиме реального времени из базы данных?:

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

Предполагается, что общее количество выполнений функции остается равным.

1 Ответ

0 голосов
/ 18 октября 2018

Если в одно и то же время происходит несколько событий, это может быть проблемой (из https://cloud.google.com/functions/docs/concepts/exec):

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

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

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

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