Каналы замедляют работу приложения и создают много ошибок HTTP 500
Я использую channels для того, чтобы сообщить фронтенду моего приложения о необходимости принудительного обновления страницы. Что я обнаружил, так это то, что теперь в режиме отладки он работает намного медленнее, а также у меня куча HTTP 500 в моей веб-консоли.
Иногда в итоге я получаю:
ERROR:daphne.server:Exception inside application: Single thread executor already being used, would deadlock
Traceback (most recent call last):
File "...\venv\lib\site-packages\channels\staticfiles.py", line 40, in __call__
return await self.staticfiles_handler_class()(
File "...\venv\lib\site-packages\channels\staticfiles.py", line 56, in __call__
return await super().__call__(scope, receive, send)
File "...\venv\lib\site-packages\channels\http.py", line 198, in __call__
await self.handle(scope, async_to_sync(send), body_stream)
File "...\venv\lib\site-packages\asgiref\sync.py", line 382, in __call__
raise RuntimeError(
RuntimeError: Single thread executor already being used, would deadlock
Кроме того, все ошибки HTTP 500 - это обычно какие-то ресурсы, которые не могут быть загружены - иконки и другие статические файлы. Загрузка страницы может длиться вечно, но я помню, что некоторое время она работала просто отлично. Я использую django-eventstream для создания своих каналов.
Как мне выяснить, что меня замедляет, или как я могу это предотвратить? Является ли моя проблема (возможно) похожей на эту: Django and Channels and ASGI Thread Problem?