首页 > 解决方案 > 将 Django 从 3.0.8 升级到 3.1.5 并将频道从 2.4.0 升级到 3.0.3 后,线程停止工作

问题描述

因此,我开发了 Django 应用程序,并使用和Django 3.0.8将其作为asgi应用程序提供。那时,这些是最新版本。channels 2.4.0daphne

该应用程序与 web sockets 和 django 视图一起工作得很好,并且channels处理得很好。

所以一切都很好,世界似乎是一个美丽的地方......直到我内心的一些邪恶推动升级 Django 到3.1.5需要升级channels3.0.3. 所以现在应用程序仍然可以工作,所有页面都提供服务并且 Web 套接字工作,但是所有 HTTP 请求都在一个线程中排队和处理,这使得应用程序非常慢。

我已经尝试阅读channels 3Django 和频道的文档和所有发行说明,但我没有看到发生了什么变化以及我需要引入哪些变化才能让我的应用程序像以前一样运行。

这里是相关包的所有版本

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
            )
        ),
})

欢迎任何关于我在这里做错的建议。

标签: djangodjango-channelschannelsdaphne

解决方案


推荐阅读