Страницы

Поиск по вопросам

воскресенье, 16 февраля 2020 г.

Параллельный доступ Flask application

#python #flask


Имеется веб приложение, которое реализовано на Flask. Вопрос заключается в следующем. 
Идея такая - два разных пользователя загружают например списки товаров. После этого
пользователь А изменяет товар, и пользователь Б тоже изменяет этот же товар.
Система должна определить, Что товар был уже изменен и второй пользователь перезаписывает
информацию, внесенную первым. Это может выглядеть как сообщение пользователю Б в котором
написано что он перезаписывает.
Сама система работает с базой данных приложения, используя SQLAlchemy. 
Сам Flask по умолчанию обрабатывает запросы последовательно, поэтому вопрос, что
нужно сделать, чтобы реализовать посыл сообщения пользователю Б.
Уже день ищу в интернете, ничего интересного не вижу.
    


Ответы

Ответ 1



Оптимистическая блокировка спасёт отца русской демократии. Это самое простое решение, требующее незначительных доработок: Добавляете в модель поле, хранящее версию данных; Добавляете обработку исключения StaleDataError в обработчик сохраняющий товар; Добавляете шаблон с формой для разрешения конфликта.

Ответ 2



Обмен сообщениями в реальном времени или отправку сообщения пользователю о каком-то изменении можно реализовать с помощью SocketIO - https://github.com/miguelgrinberg/python-socketio Есть интеграция с Flask

Комментариев нет:

Отправить комментарий