Форум сайта python.su
На сервере стоит связка Apache + Django.
Для Apache выбрана WinNT MPM модель, где ThreadsPerChild 64
Получается, что если идет множетсво одинаковых параллельных запросов и вызывается один и тот же view, в котором идет инкрементация глобальной переменной или запись в файл, то могут возникнуть конфликтные ситуации.
Пробовал внтури view испольщовать threading.Lock, но не помогает.
Как правильно поступать в данной ситуации?
Офлайн
DHTПравильно в данной ситуации не использовать глобальный переменные. Знаете главное правило веба? Объекты не должны хранить состояние. Если сильно хочется - храните что-то в сесиии, в специальной таблице БД, в каком-нибудь in-memory хранилище, да хоть тупо в txt файле, но архитектура Вашего приложения должна строитиься таким образом, чтобы программа могла “подохнуть” и заново запуститься не ломая бизнес-логику. То есть каждый реквест создает новый экземпляр вьюхи или используется вьюха-синглтон имеющая толоько статические методы.
Как правильно поступать в данной ситуации?
Офлайн
Вариант №2. Перейти на фреймверк, который уже заточен под многопоточность…
Офлайн