Многопоточная функция Firebase - PullRequest
0 голосов
/ 31 декабря 2018

Поэтому я разрабатываю функцию Firebase, которая принимает запросы от пользователей и обновляет несколько узлов в ветви, которую слушают эти пользователи.

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

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

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

Этоопция в функциях Firebase?Если да, то как это можно сделать?

1 Ответ

0 голосов
/ 31 декабря 2018

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

...