Приложение Flask с использованием блокировок и многопроцессорной обработки - PullRequest
0 голосов
/ 12 сентября 2018

Предоставляя базу данных через API на основе Flask, я использую функции блокировки в представлениях, чтобы избежать проблем с неатомарными операциями с базой данных.

Например, при работе с PUT, если драйвер базы данных не обеспечивает атомарныйПоддерживая функцию, я просто беру блокировку, читаю, обновляю, пишу, затем снимаю блокировку.

AFAIU, это работает в многопоточной среде, но поскольку блокировка принадлежит приложению Flask,это терпит неудачу, если многократные процессы используются.Это правильно?

Если так, как люди справляются с блокировками при использовании нескольких процессов?Используют ли они внешнюю базу, такую ​​как Redis, для хранения замков?

Вспомогательный вопрос.Моя конфигурация apache:

WSGIDaemonProcess app_name threads=5

Могу ли я сделать вывод, что я в безопасности, пока не добавлю туда processes=N?

...