Django Channels: Цикл событий закрывается при использовании потока

Я хочу показать обратный отсчет, а затем запустить цикл игры. Код вычисляется, сообщения отправляются, но я всегда получаю RuntimeError. Я был бы заинтересован в исправлении или возможно лучшем решении, которое я могу применить. Я также думал разделить все на два Consumers, но не знаю, как это можно исправить. Заранее спасибо.

Это сообщение об ошибке выскакивает несколько раз.

Task exception was never retrieved
future: <Task finished name='Task-60' coro=<Connection.disconnect() done, defined at D:\Programming\Fullstack\geogame\geogame_backend\env\lib\site-packages\redis\asyncio\connection.py:819> exception=RuntimeError('Event loop is closed')>
Traceback (most recent call last):
  File "D:\Programming\Fullstack\geogame\geogame_backend\env\lib\site-packages\redis\asyncio\connection.py", line 828, in disconnect
    self._writer.close()  # type: ignore[union-attr]
  File "C:\Program Files\Python310\lib\asyncio\streams.py", line 337, in close
    return self._transport.close()
  File "C:\Program Files\Python310\lib\asyncio\selector_events.py", line 698, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Program Files\Python310\lib\asyncio\base_events.py", line 753, in call_soon
    self._check_closed()
  File "C:\Program Files\Python310\lib\asyncio\base_events.py", line 515, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

Это мой потребитель

У меня была такая же проблема

Проблема в channels_redis Использование RedisPubSubChannelLayer решает эту проблему. Однако, будьте осторожны, RedisPubSubChannelLayer находится в бета-версии

CHANNEL_LAYERS = {
    "default": {
        "BACKEND": "channels_redis.pubsub.RedisPubSubChannelLayer",
        "CONFIG": {
            "hosts": ["redis://***:***@***.com:6379"],
        },
},

}

У меня была проблема с закрытием цикла событий через произвольное количество времени. Проблема была в модуле channels-redis. Он был случайно обновлен. После проверки версии каждого модуля я откатил его назад, и все снова заработало нормально.

Вернуться на верх