gpt4 book ai didi

Django - 如何检查服务器是在 ASGI 还是 WSGI 模式下运行?

转载 作者:行者123 更新时间:2023-12-05 00:47:39 45 4
gpt4 key购买 nike

我们在 WSGI 模式下运行相同的 django 项目来处理 HTTP 请求,并在 ASGI 模式下处理 WebSockets。对于 WSGI 模式,我们使用 gunicorn3 服务器:

gunicorn3 --pythonpath . -b 0.0.0.0:8000 chat_bot.wsgi:application

对于 ASGI 模式,我们使用 达芙妮服务器:
daphne --root-path . -b 0.0.0.0 -p 8001 chat_bot.asgi:application

如何以编程方式检测当前正在运行的模式 GreenUnicorn+WSGI 达芙妮+ASGI ?

最佳答案

一种可能:

您的内部 wsgi.py文件中,您可以将环境变量设置为一个您不会在其他任何地方设置的值:

os.environ.setdefault('SERVER_GATEWAY_INTERFACE', 'Web')

然后在 asgi.py 里面将其设置为不同的变量:
os.environ.setdefault('SERVER_GATEWAY_INTERFACE', 'Asynchronous')

然后在代码的其他部分,只需检查环境变量:
if os.environ.get('SERVER_GATEWAY_INTERFACE') == 'Web':
# WSGI, do something
else:
# ASGI, do something else

关于Django - 如何检查服务器是在 ASGI 还是 WSGI 模式下运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51430664/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com