Выбор базы данных Flask_sqlalchemy через SQLite - PullRequest
0 голосов
/ 30 марта 2020

Я создаю многопользовательское веб-приложение и использую flask и flask_sqlalchemy ORM с базой данных SQLite.

Я новичок в многопользовательских и многопользовательских приложениях и обеспокоен проблемами параллелизма. Чтобы избежать этих проблем с параллелизмом, я планировал систему очередей, в которой я запускаю несколько потоков, только один поток пишет исключительно в базу данных (назовем его «писателем»), в то время как другие выполняют вычислительные задачи.

В основном Есть 3 очереди:

  1. Первая очередь содержит запросы пользователей - каждый сеанс пользователя может выполнить задачу sh в этой очереди, и средство записи записывает эти задачи в базу данных, а также отправляет их в вторая очередь.
  2. Вторая очередь содержит задачи, которые необходимо выполнить - все остальные потоки получают задачи из этой очереди, выполняют их и затем отправляют результаты в третью очередь.
  3. Третья очередь содержит результаты задач. писатель записывает эти результаты в базу данных и обновляет состояние задачи.

Тогда ... Я читал больше о проблеме параллелизма SQLite.

Из того, что я понимаю, из-за реализации ORM flask_sqlachemy каждый запрос может привести к гриппу sh и блокировке, пока я планировал, что многие пользователи смогут одновременно получать свои данные и статус задачи.

Теперь я хочу перейти на базу данных с более параллельным звучанием.

Итак, я спрашиваю:

  1. Какая ваша рекомендация? Будет ли postgreSQL хорошо справляться с этим несколькими считывателями?
  2. Эта система очередей - то, что мы видим в многопользовательских приложениях, или есть еще один лучший метод?

Спасибо!

...