我正在尝试将Django 3.0与Uvicorn一起使用,并开始:
INFO: Started server process [96219]
INFO: Waiting for application startup.
INFO: ASGI 'lifespan' protocol appears unsupported.
INFO: Application startup complete.我可以用--lifespan off标志关闭生命周期,但是有没有办法让它在Django上工作呢?快速搜索Django + lifespan似乎没有返回任何结果。
发布于 2020-05-04 18:45:19
不,lifespan协议在Django 3.0中不起作用。
发布于 2021-04-27 09:34:43
这是我在Django3.1/ 3.2中使用的初始设置
编辑:一些粗略的性能基准测试:https://github.com/allen-munsch/benchmark-django-fastapi
旧版本
your_django/old_wsgi.py
import os
from django.core.wsgi import get_wsgi_application
from dj_static import Cling
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "your_django.settings")
application = Cling(get_wsgi_application())以前以以下身份运行:
newrelic-admin run-program gunicorn your_django.old_wsgi \
-k eventlet --log-file - --timeout 60新版本
your_django/asgi.py
import os
from django.core.asgi import get_asgi_application
from django.contrib.staticfiles.handlers import ASGIStaticFilesHandler
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "pm.settings")
application = ASGIStaticFilesHandler(
get_asgi_application()
)并运行
gunicorn your_django.asgi --log-level=debug -k uvicorn.workers.UvicornWorker \
--log-file - --timeout 60
# OR for local dev
uvicorn --reload your_django.asgi相关信息:
https://stackoverflow.com/questions/61300314
复制相似问题