2015-10-03 2 views
0

Я использую Django 1.8 и APScheduler для запуска рабочих с определенными интервалами. Он отлично работает с сервером разработки Django (например, ./manage.py runserver), но когда я настраиваю проект с помощью UWSGI и master=true, рабочий UWSGI не может получать запросы от Nginx, а браузер показывает 504 Gateway Timed-out после 1-2 минут загрузки.APScheduler не работает с UWSGI

Когда я меняю его на master=false все в порядке.

Вот мой UWSGI конфигурации:

[uwsgi] 
chdir    = /var/www/projectname/backend/projectname 
module   = projectname.wsgi:application 
wsgi-file  = /var/www/projectname/backend/projectname/projectname/wsgi.py 
uid    = root 
gid    = root 
virtualenv  = /var/www/venv/ 
master   = false 
processes = 4 
socket   = :8080 
logto    = /var/www/projectname/log/uwsgi.log 
env    = DJANGO_SETTINGS_MODULE=projectname.settings 
enable-threads = true 

Пожалуйста, обратите внимание, что я использую AppConfig Джанго для запуска планировщика один раз. Есть ли проблемы с моей конфигурацией UWSGI или из-за Django?

ответ

1

Рассмотрите uWSGI мулы для ваших фоновых задач. Рабочие обрабатывают запросы, мулы обрабатывают более длинные рабочие вещи.

+0

Не могли бы вы дать мне ссылку/документ, чтобы узнать больше? –

+0

Уверен: http://uwsgi-docs.readthedocs.org/ru/latest/Mules.html –

+0

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

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