django - 将 Django 从 3.0.8 升级到 3.1.5 并将频道从 2.4.0 升级到 3.0.3 后,线程停止工作
问题描述
因此,我开发了 Django 应用程序,并使用和Django 3.0.8
将其作为asgi
应用程序提供。那时,这些是最新版本。channels 2.4.0
daphne
该应用程序与 web sockets 和 django 视图一起工作得很好,并且channels
处理得很好。
所以一切都很好,世界似乎是一个美丽的地方......直到我内心的一些邪恶推动升级 Django 到3.1.5
需要升级channels
到3.0.3
. 所以现在应用程序仍然可以工作,所有页面都提供服务并且 Web 套接字工作,但是所有 HTTP 请求都在一个线程中排队和处理,这使得应用程序非常慢。
我已经尝试阅读channels 3
Django 和频道的文档和所有发行说明,但我没有看到发生了什么变化以及我需要引入哪些变化才能让我的应用程序像以前一样运行。
这里是相关包的所有版本
Django==3.1.5
channels==3.0.3
channels_redis==3.2.0
asgiref==3.3.1
daphne==3.0.1
我也使用 Redis 6。
我的路由看起来像这样
application = ProtocolTypeRouter({
"http": get_asgi_application(),
'websocket': AuthMiddlewareStack(
URLRouter(
websocket_urls.urlpatterns
)
),
})
欢迎任何关于我在这里做错的建议。
解决方案
推荐阅读
- javascript - node.js 程序因 writeStreams 过多而崩溃;其他选择?
- wpf - wpf中WebVew2控件的屏幕像素化问题
- javascript - 使用 .load() list.js & jQuery 后排序不起作用
- sql - 如何在laravel中修剪具有固定长度的二进制列上的空值
- c++ - 如何将类型的字符串表示形式转换为 C++ 中的类型本身?
- python - 将时间序列转换为事件窗口会话
- java - 为每个测试分配不同的名称以存储用户输入并访问它
- asp.net - Hangfire 仪表板的更复杂的身份验证
- r - 要替换的项目数不是替换长度的倍数
- c - C中的“创建结构的新空实例”是什么意思?