База данных Google Firebase Realtime: длительное (24/7) приложение js не получает обновления данных через несколько часов - PullRequest
0 голосов
/ 21 февраля 2019

В настоящее время я использую хром в режиме киоска, чтобы показать экран статистики со счетчиком в реальном времени.Браузер показывает счетчик почти 24/7.Счетчик реализован как приложение vue, подписывающееся на данные счетчика с использованием базы данных Google Firebase в реальном времени. Приложение не взаимодействует с пользователем, не движется мышью, не вводит данные с клавиатуры - потому что это простой экран статистики.

Теперь к моей проблеме: Я настроил тесткомплект, чтобы проверить, действительно ли счетчик изменяется после того, как в моей системе произошло определенное действие где-то еще.

Это рабочий процесс, используемый тестовым примером:

  • Триггерное действие для изменения счетчика
  • Селен: проверьте, не изменился ли счетчик (подождите 60 секунд, чтобы получить новое значение)

Результаты довольно интересные. Через ~ 3 ч счетчик перестает всегда обновляться во времени. Иногда он вообще не обновляется, а спустя часы он обновляется снова.

(Примечание. Инициируемое действие надежноизменяет базу данных. Другие экземпляры страницы статистики показывают обновления, а другие нет)

Кроме того, из моего набора тестов мне удалось воспроизвести это поведение при ручном запуске действия изменения счетчика иглядя на счетчик.

Я ищу решения, чтобы гарантировать, что счетчик надежно меняет свое значение.

Мои наблюдения / идеи из моих попыток найти решение:

  • Когда я смотрю на инструменты разработчика chromium прямо в соединение веб-сокета с firebase и сравниваю данные, которые он получает, с недавно загруженной страницей статистики, я вижу, что веб-сокет моей долгоходящей страницы получает только пакеты поддержки с сервера, когда (нав то же время) мои новые страницы подключения получают актуальные обновления.
  • Может быть, Google пытаетсяуменьшите нагрузку на свои серверы, проверив, простаивает ли пользователь, просматривающий страницу,

Спасибо за помощь!

...