2017-01-05 4 views
0

Я не уверен, что мне нужно заботиться о параллелизме, но я не нашел никакой документации об этом.Django: Параллельный доступ к settings.py

У меня есть некоторые данные, хранящиеся на моем settings.py, как ip-адреса, и каждый пользователь может взять один или дать один обратно. Поэтому у меня есть операции чтения и записи, и я хочу, чтобы только один пользователь читал файл в тот же момент.

Как я мог справиться с этим?

И да, я хочу сохранить данные на settings.py. Я нашел также модуль django-concurrency. Но я ничего не мог найти в документации.

ответ

1

как e4c5 упомянутый, обычно настройка.py довольно легкий на логике. Механизм загрузки настроек довольно неясен и, лично я, люблю держаться подальше от вещей, которые трудно понять и взаимодействовать с ними.

Вам абсолютно необходимо заботиться о параллелизме. Как вы используете свое приложение? Это сложно, потому что в dev env у вас есть простой сервер и обычно обрабатывает только несколько запросов одновременно (и пару лет назад сервер dev был однопоточным)

Если вы используете приложение, используя forking server, как вы будете делиться данными между процессами? один процесс даже не увидит другие процессы settings.py изменений. Я даже не знаю, как это будет выглядеть на потоковом сервере, но, по крайней мере, потребуется, по крайней мере, потребовать ревизию исходного кода вашего веб-сервера, чтобы понять специфику обработки запросов и того, как распределена память.

Использование БД на сегодняшний день является самым простым решением (вы также можете использовать память в памяти как вариант memcache/redis/etc). DB обеспечивают поддержку параллелизма в ящике и будут намного легче рассуждать и предоставляют примитивы для одновременного доступа к данным. И в случае redis, который является однопоточным, вам даже не придется беспокоиться о одновременном доступе к вашим общим IP-адресам.

1

И да, я хочу сохранить данные на settings.py.

Нет, вы определенно не хотите этого делать. файл settings.py настраивает django и любые подключаемые приложения, которые вы можете использовать с ним. он не предназначен для использования в качестве места для сброса данных. Данные поступают в базу данных.

И не забывайте, что файл settings.py обычно читается только один раз.

+0

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

+0

Затем используйте текстовый файл! :) – e4c5

+0

Так что лучше использовать дополнительный текстовый файл как settings.py? Зачем? – ikreb