Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

175
Visualizações
Uso de Django Channels para un indicador de progreso

Tengo una aplicación django que realiza algunos cálculos en el servidor que pueden demorar hasta 30 segundos. Estoy tratando de usar canales Django para crear un indicador de progreso.

Mi configuración se basa en este tutorial: https://realpython.com/blog/python/getting-started-with-django-channels/

Todo está funcionando como se esperaba hasta ahora. Envío una tarea por web socket. Esto lo recibe mi consumidor, que llama a otros métodos para completar la tarea y luego devuelve el resultado por websocket.

Sin embargo, cuando trato de enviar varios mensajes del mismo consumidor, todos los mensajes llegan juntos al final, en lugar de llegar cuando se envían.

Aquí está mi código de consumidor:

 @channel_session def ws_receive(message): data = json.loads(message['text']) reply_channel = message.reply_channel.name Channel(reply_channel).send({ "text": json.dumps({'progress': 'Starting Work'}) }) # calls outside method to do work result = perform_calculations(data, reply_channel) Channel(reply_channel).send({ "text": json.dumps({'progress': 'Finished Work','result':result }) })

En este ejemplo, mi front-end recibe los mensajes de 'Trabajo inicial' y 'Trabajo terminado' al mismo tiempo, a pesar de que hay una brecha de 30 segundos entre ellos que se generan.

¿Hay alguna manera de hacer que estos mensajes lleguen en tiempo real?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Sí, lo hay, podría usar el parámetro inmediatamente.

 Channel(message.reply_channel).send({ "text": json.dumps({'progress': 'Starting Work'}) }, immediately=True)

También mencionado en:

¿Cómo me aseguro de que un mensaje de Django Channels se envíe inmediatamente sin demora?

over 4 years ago · Santiago Trujillo Relatório

0

Puedes echarle un vistazo a este proyecto:

https://gitlab.com/Baurin_lg/demo_channels_rest

Es una demostración para usar Django Rest y Django Channels.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda