Web Socket против AJAX - Попытка заблокировать записи базы данных, пока пользователь просматривает их - PullRequest
0 голосов
/ 02 октября 2019

У меня есть база данных «документов», когда пользователь запрашивает просмотр документа, он отправляет исходное сообщение AJAX на сервер (Flask), чтобы обновить состояние, например. «заблокирован» с использованием текущего времени, затем каждые 10 секунд он снова обновляет состояние блокировки с текущим временем.

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

Все это делается с помощью постоянных AJAX-вызовов к бэкэнду. Я думал о возможном использовании веб-сокетов для создания состояния истинной логической блокировки вместо этого, пока пользователь просматривает документ, при отключении состояние блокировки возвращается к значению False.

Есть ли плюсы и минусы для любого из них,Я просто думаю, что если у меня по 100 пользователей, каждый из которых выполняет AJAX-запрос каждые 10 секунд, это превысит максимальное число одновременных запросов моих серверов, и он попытается загрузить другой экземпляр, потому что считает, что он получает высокую нагрузку?

псевдо-примертекущего метода:

while viewing document:
    for every 10 seconds:
        update document.lock to current-time

Идея Websocket:

on connect:
    document.lock = True

on disconnect:
    document.lock = False
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...