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

94
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 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