我使用gunicorn为django-asgi应用程序运行的命令如下:
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" >> /logs/error.log
当我尝试访问应用程序的任何端点时,我会得到已经在使用的单线程执行器,会死锁错误。
我使用以下软件包版本:
Django=3.2.4
asgiref==3.4.0
uvicorn==0.15.0
gunicorn==20.1.0
我通过从gunicorn run命令中删除:application修复了这个问题,如下所示:
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" >> /logs/error.log