2015-09-23 2 views
3

Я читал о настройках CONN_MAX_AGE и документация говорит:запроса Django потоков и постоянные соединения с базой данных

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

Так что, на uWSGI, как процесс Django поддерживает собственные потоки, создает ли он новый поток для каждого запроса и убивает его в конце запроса?

Если да, то как прекращенная нить поддерживает соединение?

+0

зависит от того, какой сервер приложений вы используете. – levi

+0

Предположим, что uWSGI –

ответ

3

Django не контролирует нитки (ну ... может быть, на сервере разработки, но это довольно просто), но uWSGI есть. uWSGI будет порождать некоторые потоки, в зависимости от его конфигурации, и в каждом потоке он будет запускать обработку запросов django.

Нерестовые нити могут быть динамическими или статическими, они могут быть строго 4 нити или динамические от 2 до 12 в зависимости от нагрузки.

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

Запросы обрабатываются один за другим в каждом потоке, а основной процесс uWSGI выполняет циклические запросы между потоками. Если запросов больше, чем потоков, некоторые из них будут ждать до тех пор, пока другие не будут завершены.

В uWSGI есть также рабочие независимые процессы, которые могут создавать собственные потоки, поэтому загрузка может быть лучше распределена.

Также вы можете иметь несколько серверов uWSGI и сообщить HTTP-серверу (apache, proxy) для распространения запросов между ними. Таким образом, вы можете даже обслуживать свои экземпляры uWSGI на разных компьютерах, и все это будет выглядеть снаружи как один большой сервер.

+0

Привет, это правильно, что uWSGI повторно использует потоки? У вас есть документация для его поддержки? Приветствия. –

Смежные вопросы