@badtrips

Как правильно включить опцию lazy-apps в uwsgi для использования fork() в коде?

Привет всем!
Подскажите кто сможет что делать с такой проблемой?
Использую Debian + Nginx + Django + UWSGI,
во view одна из функций делает fork(), другой процесс ответвляется, с ним никаких проблем нет, после сразу идёт return render(request, ...
Проблема в том, что после ответвления не прогружается сразу страница, идёт долгая загрузка и всё кончается ошибкой "Веб-страница недоступна", при этом если я просто обновлю её быстро, то прогружается нормально так как ответвление уже не создаётся (не нажата кнопка на форме).
В документации UWSGI есть такое -
uWSGI tries to (ab)use the Copy On Write semantics of the fork() call whenever possible. By default it will fork after having loaded your applications to share as much of their memory as possible. If this behavior is undesirable for some reason, use the lazy-apps option. This will instruct uWSGI to load the applications after each worker’s fork(). Beware as there is an older options named lazy that is way more invasive and highly discouraged (it is still here only for backward compatibility)

О чём тут речь я до конца не понимаю, но вроде как надо использовать в конфигурации uWSGI опцию lazy-apps, что я и сделал написав lazy-apps: 1 в своём uwsgi.yaml.
Это не помогает, что я не так делаю?
P.S. другие варианты кроме как fork() мне пока что не подходят..
  • Вопрос задан
  • 446 просмотров
Решения вопроса 1
@badtrips Автор вопроса
Посоветовали использовать для решения задачи Celery.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы