@Barrakuda74

Как наименее затратно мониторить в цикле наличие новой информации?

Т.е. вот есть цикл в server sent events, он проверяет каждые 500мс нет ли звонка от клиента. Как появляется, передаёт эту информацию в браузер менеджеру. Так вот вопрос, куда эту информацию записывать? Ясно что не в БД, это слишком затратно к ней обращаться каждые полсекунды. А куда лучше? Просто записывать в какой-нибудь файл calls.txt и считывать каждые полсекунды оттуда первую строку? Нормально ли так часто обращаться к файлу? или может другие какие-то хранилища быстрые есть в php?
  • Вопрос задан
  • 114 просмотров
Решения вопроса 1
@AlexndrNovikov
Solution Architect in Spiral Scout
RabbitMq + Consumer на PHP
Поступил звонок -> Пуш сообщения в RabbitMq -> Свободный консьюмер обрабатывает и пушит уже в браузер по websocket
Легко масштабируется если нагрузка станет больше (просто добавить консьюмеров)
Но вообще нагрузка "каждые полсекунды" для базы - не нагрузка вовсе
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@402d
начинал с бейсика на УКНЦ в 1988
> есть цикл в server sent events, он проверяет каждые 500мс
Почему сами лезете к апи ? Калбаки есть ?
> Ясно что не в БД,
Нет файлы хуже .
> считывать каждые полсекунды оттуда первую строку?
У вас фронт насилует бак каждые полсекунды аякс запросом ?

Как я вижу все решение

используем WebPush https://fcm.googleapis.com/fcm/send

Виртуальной атс говорим урл для уведомлений.

При его вызове, разбираем данные. Заносим в базу для статистики или для других целей. Шлем уведомление .
Обычно оно выскакивает через 250мс.

В общем гуглите. Примеров в сети достаточно.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы