- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想在同一个线程中运行 starlette 和 django 应用程序。
(将它们放在同一个线程中允许它们之间进行快速的线程本地通信)。
考虑到 asgi 应用程序只是协程,我认为这在理论上应该是可行的 asyncio.gather()
.
我想出了一个小技巧来完成这项工作,但它有一些限制。
from uvicorn import Server, Config
configs = [Config(app1, uds='app1.sock'), Config(app2, uds='app2.sock')]
coros = [Server(c).serve() for c in configs]
await asyncio.gather(*coros)
reload
和 workers
选项。 INFO: Started server process [86066]
INFO: Waiting for application startup.
INFO: Started server process [86066]
INFO: Waiting for application startup.
INFO: ASGI 'lifespan' protocol appears unsupported.
INFO: Application startup complete.
INFO: Uvicorn running on unix socket app1.sock (Press CTRL+C to quit)
INFO: Application startup complete.
INFO: Uvicorn running on unix socket app2.sock (Press CTRL+C to quit)
^CINFO: Shutting down
INFO: Finished server process [86066]
^C^C^C^C^C
最佳答案
更新 - 如果您在 2 个应用程序之间分离了路径,您可以使用它来跳过 starlette 的中间件:
from mydjangoapp.asgi import application as django_app
ws_app = Starlette(...)
async def app(scope, receive, send):
path = scope.get("path")
chosen = ws_app
if not (path is None or path.startswith("/ws")):
chosen = django_app
return await chosen(scope, receive, send)
from mydjangoapp.asgi import application as django_app
app = Starlette(...)
app.mount('/', django_app)
关于python - 使用 uvicorn 在同一线程中运行多个 asgi 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60182619/
我在 2.2 中有一个现有的 django 项目,但现在我想开始使用 channel ,所以我必须更改为 3.0 和 asgi 而不是 wsgi。 如何生成运行应用程序所需的 asgi.py? 最佳答
为什么会这样: from channels.asgi import get_channel_layer 结果: from channels.asgi import get_channel_layer
我们在 WSGI 模式下运行相同的 django 项目来处理 HTTP 请求,并在 ASGI 模式下处理 WebSockets。对于 WSGI 模式,我们使用 gunicorn3 服务器: gunic
我想在同一个线程中运行 starlette 和 django 应用程序。 (将它们放在同一个线程中允许它们之间进行快速的线程本地通信)。 考虑到 asgi 应用程序只是协程,我认为这在理论上应该是可行
我有一个在 fastapi 和 aiofiles 上运行的异步代码 我正在尝试从 .json 文件加载并保存我的信息,但每次我关闭程序时,它只保存 dict 的键并向我显示“ASGI 'lifespa
我升级到 Django 3.0,现在使用 websockets + TokenAuthMiddleware 时出现此错误: SynchronousOnlyOperation You cannot ca
我在使用 django 和 channel 时遇到问题(在 asgi 模式下) 当我设置 django channel 并使用 asgi 模式时,我的应用程序为每个 http 请求和我从 channe
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 4 年前。 Improv
我正在使用 Django 开发一个应用程序,我最初使用 WSGI 环境将它部署在 Google Cloud Platform 上,现在我在应用程序中添加了内容并使用了 channel ,因此我必须从
我目前正在 Django 中开发一项服务,该服务使用缓慢的外部 API(大约需要 10 秒才能获得响应),这意味着与我的服务器的连接保持打开状态等待外部 API 响应,并占用工作人员时间/资源。 我知
我目前正在使用 uWSGI 运行 Django (2.0.2) 服务器有 10 个 worker 我正在尝试实现实时聊天,我查看了 Channel . 文档提到服务器需要使用 Daphne 运行, D
我无法通过 docker 容器通过本地主机上 NGINX 上的 Unix 套接字连接在 ASGI + Gunicorn 上运行的应用程序。 假设我在 docker 容器中并运行 NGINX: /usr
我正在尝试使用 asgi 以及现有的 wsgi 实现在 Heroku 上部署 Django Channels。我可以使用以下设置将 asgi 和 wsgi 部署到 heroku 吗? 我的过程文件:
我正在尝试使用 Channels (V.2) 设置 Django + Heroku 应用程序。我试图按照所有教程进行操作,但其中大部分都没有更新。应用程序必须对 HTTP 请求使用 WSGI,对 we
我有一个简单的应用程序,它使用打开的 cv 和 wsgi 中设置的服务器流式传输图像。但是每当我将 Django channel 引入图片并将 WSGI 更改为 ASGI 时,流媒体就会停止。如何从
我目前有一个通过 uWSGI 代理在 Nginx 后面的 Flask 应用程序。由于我需要 asyncio 和 websockets,我更愿意切换到 Quart。 我使用 nginx 来管理身份验证并
Django 3应该很快就会发布,它将能够工作在ASGI模式下。 ASGI 模式似乎使 Django 在处理请求时比在 WSGI 模式下更有效率(如果我相信正确的话,每个时间单位可以处理更多的请求)。
尝试从 Django 3.1 中的异步 View 连接到同一 asgi 服务器提供的同步 View 时遇到问题。在普通的 wsgi 开发服务器中这样做是可行的,但在 asgi 服务器中则不行。这看起来
我在我的项目中使用 django channel ,使用官方 django channels v2 ,如果运行 python manage.py runserver,我的简单 channel 应用程序
我有一个用 Django 3 编写的基于 API 的简单 Web 应用程序。在 Django 文档中有一个 page关于 ASGI服务器,并提到了两个选项:Daphne和 Uvicorn .不幸的是,
我是一名优秀的程序员,十分优秀!