Найти - Пользователи
Полная версия: Многопоточная работа с файлама, глобальными переменными, БД и т.п.
Начало » Django » Многопоточная работа с файлама, глобальными переменными, БД и т.п.
1
DHT
На сервере стоит связка Apache + Django.
Для Apache выбрана WinNT MPM модель, где ThreadsPerChild 64

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

Пробовал внтури view испольщовать threading.Lock, но не помогает.
Как правильно поступать в данной ситуации?
FishHook
DHT
Как правильно поступать в данной ситуации?
Правильно в данной ситуации не использовать глобальный переменные. Знаете главное правило веба? Объекты не должны хранить состояние. Если сильно хочется - храните что-то в сесиии, в специальной таблице БД, в каком-нибудь in-memory хранилище, да хоть тупо в txt файле, но архитектура Вашего приложения должна строитиься таким образом, чтобы программа могла “подохнуть” и заново запуститься не ломая бизнес-логику. То есть каждый реквест создает новый экземпляр вьюхи или используется вьюха-синглтон имеющая толоько статические методы.
4kpt_II
Вариант №2. Перейти на фреймверк, который уже заточен под многопоточность…
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB