2013-07-11 3 views
1

Я пишу приложение Django, которое должно выполнять длительные задачи async. Первоначальная идея состояла в том, чтобы запустить подпроцесс из представления, которое выполняет эту работу, и отслеживать прогресс в других представлениях.Запуск подпроцесса в приложении uwsgi

Идея отлично работает, когда приложение запускается через manage.py runserver, но это не происходит при запуске под управлением uwsgi. Детский процесс запущен, но после того, как представление вернет, uwsgi ждет завершения дочернего процесса, что нарушает всю идею.

Я могу видеть детали запроса в журнале uwsgi (количество генерируемых байт и т. Д.), Но сокет не закрыт, поэтому браузер тоже ждет.

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

ответ

0

Я нашел хорошую альтернативу: https://github.com/ui/django-rq, который прост в установке и настройке, и он правильно выполняет работу.

Исходная проблема с подпроцессами пока неясна.

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