Как правильно организовать получение данных из mongo?
Добрый день, есть задача при обновлении данных в бд отправлять их через websoket на клиент.
Сложность заключается в том что данные наполняются отдельным скриптом.
У вас не так много вариантов:
1) Отправляйте сокеты в конце выполнения вашего скрипта;
2) Сохранять информацию, например, со значением {"use": False}, проверять серверной частью наличие обновлений и последующая отправка на клиентскую часть.
lega: А в чем проблема с Redis? Подгрузил с меткой, при проверке забрал и удалил. В базу обращений не идет практически, только в отдельных случаях. Вполне неплохой вариант, если не получается организовать доставку Socket из скрипта-парсера.
ни в чем, просто это почти тоже самое что с монгой, тот же лаг (период) опроса и "ддос" сервера.
А забирать эти данные должен клиент, спамить ajax запросам flask? или как в предлагаете?
lega: Это не настолько критично, чтобы создавать отдельный ассинхронный сервер. А то, что вы написали внизу можно и без сервера организовать, а просто передавать данные через открытый WebSocket прямо на страницу (то, что я написал в 1 варианте).
Сделайте асинхронный воркер на asyncio/tornado/gevent, запустите там zmq для приема сообщений от скрипта и websocket для общения с клиентом, так же из веб приложения сможете отправлять клиенту. Будет что-то типа:
Скрипт --(zmq)--> async_сервер --(ws)--> Клиент