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

#django #gunicorn #uvicorn

Вопрос:

моя команда запуска для приложения django asgi с использованием gunicorn выглядит следующим образом:

 gunicorn -b '0.0.0.0:8000' myproject.asgi:application -w 4 -k uvicorn.workers.UvicornWorker --access-logfile /logs/access.log --access-logformat "%(h)s %(l)s %(u)s %(t)s %(r)s %(s)s %(b)s %(f)s" gt;gt; /logs/error.log  

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

Я использую следующие версии пакетов:

 Django=3.2.4 asgiref==3.4.0 uvicorn==0.15.0 gunicorn==20.1.0  

Ответ №1:

Я исправил это, удалив :приложение из команды запуска gunicorn следующим образом:

 gunicorn -b '0.0.0.0:8000' myproject.asgi -w 4 -k uvicorn.workers.UvicornWorker --access-logfile /logs/access.log --access-logformat "%(h)s %(l)s %(u)s %(t)s %(r)s %(s)s %(b)s %(f)s" gt;gt; /logs/error.log