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

93
Vistas
Manejar la solicitud de ejecución prolongada de Swift Client en Node.js

Así que actualmente estoy usando socket.io para una pantalla de carga y simplemente no funciona, así que voy a probar una solución diferente. Necesito que suceda lo siguiente: el usuario abre mi aplicación; esto desencadena una función en el lado del servidor (función de extracción intensiva de CPU que demora aproximadamente 8 segundos). Tan pronto como se realiza la función, debo notificar al cliente que la función se realiza y el cliente obtiene los resultados (después de obtener este resultado, la pantalla de carga de la aplicación se cierra y el usuario ingresa a la aplicación).

Mi implementación actual utiliza emisiones de socket.io y procesa la función de raspado a través de la cola de Redis en un subproceso en segundo plano.

¿Existe un enfoque diferente para hacer esto en lugar de una conexión de socket y enviar emisiones desde el cliente -> servidor y viceversa?

No creo que pueda simplemente con una solicitud GET clásica, porque ¿no es una mala práctica dejar abierta una solicitud de ejecución prolongada (8 segundos) durante tanto tiempo mientras se espera una respuesta? Además, investigué los eventos enviados por el servidor, pero no estoy seguro de poder usarlos en este caso.

¡Cualquier idea es muy apreciada!

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

8 segundos es más de lo normal para una respuesta de un servidor "saludable", pero aún así debería estar bien. Simplemente usaría un GET del cliente móvil y lo escribiría para no bloquear la interfaz de usuario mientras espera.

Escriba su interfaz de usuario para que informe al usuario que está esperando una respuesta, y tal vez incluso le dé una idea de cuánto tiempo puede tardar la respuesta.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Algunos puntos a tener en cuenta.

  1. Por lo general, nodejs puede hacer una gran cantidad de raspado web simultáneo: la mayor parte del tiempo transcurrido del raspado web se gasta esperando que los servidores raspados respondan. nodejs es asíncrono. Entonces , los subprocesos de trabajo pueden no ayudar mucho. Definitivamente harán que su aplicación de servidor sea más compleja. Una buena opción para escalar esto podría ser agrupar su aplicación nodejs.
  2. No hay ningún daño en escribir su servidor para detener la respuesta a una solicitud GET durante unos segundos, excepto el daño a la experiencia del usuario . Si su usuario tiene algo razonable para mirar durante esos pocos segundos, probablemente pueda salirse con la suya.
  3. Si su usuario está mirando una página web durante ese bloqueo, puede usarxhr o buscar desde el código Javascript en la página para recuperar esos datos mientras los entretiene con una rueda giratoria o alguna otra interfaz de usuario.
about 4 years ago · Juan Pablo Isaza 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