Как отправлять сообщение через каждый определенный промежуток времени в django websocket?

Когда пользователь запрашивает пост, сервер посылает информацию о ходе работы на websocket

Когда процесс завершен, отправьте сообщение о его завершении.

Затем javascript получает сообщение и запрашивает доступ к определенному url. Сервер выполняет ответ филера.

Вопрос здесь в том, как реальный сервис проверяет прогресс асинхронно...

Прежде всего, код выглядит следующим образом.

class GifConsumer(WebsocketConsumer):
    ....

    def receive(self, text_data):
        ...
        t = downloand_video.delay(data) # celery
        while not t.ready(): 
            # async_to_sync(asyncio.sleep)(1) 
            self.send(text_data=json.dumps({
            'message': "Doing"
        }))
        self.send(text_data=json.dumps({
            'message': "Done"
        }))
      

Код постоянно проверяет состояние с помощью операторов while, поэтому кажется, что он тратит слишком много ресурсов.

Как я могу изменить это? Если использовать sleep, то веб-сервер будет спать.

Итак, я не думаю, что могу даже запросить get, post.

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