Django Channels. Как избежать исключения RuntimeError: Task got Future attached to a different loop?

Я использую Django Channels с channel_layers (RedisChannelLayer).
Используя каналы, мне нужно получать живые сообщения от сигналов только тогда, когда происходит событие post_save.
Я пытаюсь отправить сообщение из модуля signals.py.
Дело в том, что сообщение отправляется правильно, я успешно получил его в консоли,
но затем происходит отсоединение от сокета с исключением:
RuntimeError: Task got Future attached to a different loop.
Это относится к ...redis/asyncio/connection.py:831
. Все мои настройки были выполнены правильно в соответствии с документацией.
. Мой проект также использует DRF, Celery (на Redis), Redis сам, Daphne сервер.
Я пытаюсь реализовать его только в режиме Debug=True, не говоря уже о production.
. Я понятия не имею, что происходит и как это решить.
Вот фрагменты из моего кода:

    #consumers.py

    class LikeConsumer(AsyncWebsocketConsumer):
    async def connect(self):
        self.room_group_name = "likes"
        await self.channel_layer.group_add(
            self.room_group_name,
            self.channel_name
        )
        await self.accept()
    
    async def chat_message(self, event):
        message = event['message']
        await self.send(text_data=json.dumps({
            'type': 'chat',
            'message': message
        }))

    #signals.py
    
    channel_layer = get_channel_layer()
    
    @receiver(post_save, sender=Like)
    def new_like(sender, instance, **kwargs):
        async_to_sync(channel_layer.group_send)(
            'likes',
            {
                "type": "chat_message", 
                "message": "1212341324, 213413252345"
            }
        )

    //script.js
    
    const likeSocket = new WebSocket(url);
    likeSocket.onmessage = function(e) {
      let data = JSON.parse(e.data);
      console.log(data);
    };

После нескольких дней изучения проблемы я понял, что исключение, RuntimeError, в этом случае является просто Warning, а не Error.
Потому что server doesn't break and the Socket is going on далее.
И это "Предупреждение" все еще находится в стадии Bug в каналах разработчиков.
В консоли сервера это выглядит не красиво, но работает правильно.
Я пытался попробовать исключить его, но не могу разобраться - не понимаю, какой код вызывает Ошибку для попытки исключения.

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