Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

505
Vistas
Python websocket con FastAPI no devuelve datos inmediatamente

Creé una conexión websocket con FastAPI para "transmitir" datos que provienen de un cálculo tedioso. Los fragmentos de datos deben enviarse tan pronto como estén disponibles y no del todo al final. En el siguiente código cortado muestra mi problema simplificado. sleep() aquí simulará el tiempo de cálculo entre los datos resultantes.

 from fastapi import FastAPI, WebSocket import uvicorn from time import sleep app = FastAPI() @app.websocket("/") async def endpoint(websocket: WebSocket): await websocket.accept() while True: command = await websocket.receive_text() if command == "getData": data = {"name": "NAME1", "result": "ABC"} await websocket.send_json(data) sleep(3) data = {"name": "NAME2", "result": "DEF"} await websocket.send_json(data) sleep(3) data = {"name": "NAME3", "result": "GHI"} await websocket.send_json(data) if __name__ == "__main__": uvicorn.run("api:app", host="127.0.0.1", port=8000, reload=True)

El problema es que al ejecutar este código, el cliente no recibe datos durante 6 segundos y luego todos los datos se transmiten a la vez. ¿Por qué sucede esto y cómo puedo hacer que los fragmentos de datos se envíen uno por uno tan pronto como estén disponibles?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

time.sleep es una operación de bloqueo, por lo que incluso el bucle de eventos se suspende en el hilo actual.

Intente usar asyncio.sleep que no bloquea.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda