Предоставляя базу данных через API на основе Flask, я использую функции блокировки в представлениях, чтобы избежать проблем с неатомарными операциями с базой данных.
Например, при работе с PUT
, если драйвер базы данных не обеспечивает атомарныйПоддерживая функцию, я просто беру блокировку, читаю, обновляю, пишу, затем снимаю блокировку.
AFAIU, это работает в многопоточной среде, но поскольку блокировка принадлежит приложению Flask,это терпит неудачу, если многократные процессы используются.Это правильно?
Если так, как люди справляются с блокировками при использовании нескольких процессов?Используют ли они внешнюю базу, такую как Redis, для хранения замков?
Вспомогательный вопрос.Моя конфигурация apache:
WSGIDaemonProcess app_name threads=5
Могу ли я сделать вывод, что я в безопасности, пока не добавлю туда processes=N
?