При отключении или обновлении вебсокета Django channels "потребовалось слишком много времени для отключения и он был убит"
Я использую Django Channel для отправки и сохранения данных в реальном времени, но когда я обновляю страницу, появляется ошибка.
log
Application instance <Task pending name='Task-2' coro=<StaticFilesWrapper.__call__() running at path\channels\staticfiles.py:44> wait_for=<Future pending cb=[Task.task_wakeup()]>> for connection <WebSocketProtocol client=['127.0.0.1', 50991] path=b'/ws/graph/'> took too long to shut down and was killed.
consumer.py
async def connect(self):
await self.accept()
Ваш код кажется неполным, проверьте документацию и/или отредактируйте сообщение, чтобы мы могли понять, в чем заключается ваша проблема.
Решения в этом посте на GitHub могут помочь вам: https://github.com/django/channels/issues/1119
Это только мое предположение, я думаю, что while не завершается, поэтому попробуйте завершить while, когда он отключен.
async def connect(self):
await self.accept()
self.event_close = False
while not self.event_close:
await event.startReadMessage("HostName","name",cb)
async def disconnect(self, close_code):
self.event_close = True