Вот код:

я есть http-функция firebase, которая добавляет данные в список базы данных firebase. Вторая функция сконфигурирована для обработки списка при его изменении, а затем для обновления некоторых сводных данных. В моем случае, эти обновления приходят в очередях. Я использую функции firebase для node.js.

Глядя на журналы Firebase, я вижу эту последовательность при запуске с пустым списком:

добавить в список из http - список содержит 1 элементдобавить в список из http - список состоит из 2 элементовдобавить в список из http - список состоит из 3 элементовдобавить в список из http - список состоит из 4 элементовсуммировать список с 1 элементомобобщить список с 3 элементамиобобщить список с 4 элементамиобобщить список с 2 элементами

Моя проблема в том, что в резюме входят только 2 элемента вместо 4.

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

Какие подходы можно использовать, чтобы гарантировать, что итоговые вычисления содержат «все данные», а предыдущие итоговые вычисления, выполняющиеся медленнее, не перезаписывают более поздние? Можно ли сериализовать триггеры функции firebase для выполнения в порядке их инициирования?

В идеале я хотел бы избегать вычисления сводки N раз, когда приходит всплеск, поэтому было бы неплохо какое-то решение, где сводка может быть «запланирована» на некоторое короткое время в будущем, а затем отменена и перенесена, если придет новое событие.

Ответы на вопрос(2)

Ваш ответ на вопрос