Мы постоянно получаем ошибку channel.exception.ChannelFull () при запуске нашей настройки.
Трассировка
Наша установка состоит из:
- Серверный компьютер
- Клиентский компьютер
Клиент подключается к серверу через веб-сокет. Он отправляет и получает на сервер по этой ссылке.
Сервер запускает Django с Redis (channel-redis) и Channels2 в режиме ASGI.
Когда клиент подключается, specific.channel_id сохраняется в нашей базе данных. Когда клиент отключается, он удаляется из нашей базы данных.
Мы запускаем задание BackgroundScheduler с 5-секундными интервалами. Это задание получает клиентов в БД и отправляет каждому (через specific.channel_id) сообщение. Клиент получает это сообщение через websocket, обрабатывает его и отправляет запрошенные данные обратно на сервер, где они обрабатываются через WebsocketConsumer.
При разработке мы проводили короткие тесты (<2 мин). Только позже, когда мы выполняли более длительные тесты (более 2 минут), мы начали сталкиваться с этой ошибкой. </p>
Что мы могли пропустить?