Конфликт прослушивателей событий Firestore в контейнерах - PullRequest
0 голосов
/ 07 августа 2020

Внутри моего приложения у меня есть слушатели, которые слушают документы firestore, если происходят какие-либо изменения, проблема возникает, когда приложение развертывается в AWS / OS / GCP и размер модуля больше 1. При размере модуля больше 1 это означает, что у меня более 1 слушателя, слушающего один и тот же объект, поэтому, когда происходит изменение, у меня теперь есть эти несколько изменений событий, которые я пытаюсь обработать.

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

1 Ответ

1 голос
/ 07 августа 2020

Проблема, с которой вы столкнулись, не может быть легко устранена с вашей текущей архитектурой.

Вам следует подумать об использовании Cloud Functions вместо того, чтобы запускать изменения в документах. Триггеры Firestore будут выполняться только один раз при изменении документа (за исключением редких повторяющихся событий, которые вы должны удалить самостоятельно), но при этом масштабируйте до 1000 одновременных экземпляров сервера для обработки нагрузки. Затем вы можете сделать что-нибудь, чтобы впоследствии сообщить своему приложению, если это необходимо.

...