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

194
Visualizações
Cómo obtener el estado de todas las solicitudes a una API en nodejs

Quiero obtener el estado del servidor API en nodejs. Estoy usando nodejs para abrir una interfaz: "api/request?connId=50&timeout=90". Esta API mantendrá la solicitud en ejecución durante el tiempo proporcionado en el lado del servidor. Después de completar con éxito el tiempo proporcionado, debería devolver el estado/OK. Y cuando tenemos múltiples ID de conexión y tiempo de espera, queremos que la API devuelva todas las solicitudes en ejecución en el servidor con el tiempo restante para completarse, algo como a continuación, donde 4 y 8 son el connId y 25 y 15 es el tiempo restante para el Solicitudes para completar (en segundos):

 {"4":"25","8":"15"}

por favor ayuda.

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El servidor Node.js usa un modelo asíncrono en un solo hilo, lo que significa que en cualquier momento, solo una solicitud ( connId ) está siendo ejecutada por Node (excepto... tiene varias instancias de node.js, pero mantengamos el escenario simple e ignoremos este caso).

Cuando se procesa una solicitud (ejecutando su código de controlador), puede iniciar una tarea asíncrona como leer un archivo y continuar con la ejecución. El código del controlador de la solicitud en sí se ejecutaría sin esperar la tarea asíncrona, y cuando este código del controlador termine de ejecutarse, desde el punto de vista de Node.js, el manejo de la solicitud en sí mismo está hecho: el manejo del resultado de la tarea asíncrona es otra cosa en otra tiempo, nodo no se preocupa por el progreso de la misma.

Por lo tanto, para devolver el tiempo restante de todas las solicitudes, supongo que este es el tiempo restante de la tarea asíncrona de otra solicitud, porque el tiempo restante de la ejecución del código del controlador de otra solicitud no tiene ningún sentido, debe haber algún lugar para almacenar la información de todas las solicitudes, incluyendo:

  • connId y startTime de la solicitud (la hora en que se recibe la solicitud).
  • el valor de tiempo de timeout de la solicitud, que se pasa como parámetro en la URL.
  • el tiempo restante estimado de la solicitud, esta información es específica de la misión y debe recuperarse de otros servicios relacionados con tareas asincrónicas (puede extraer tiempo por tiempo usando setInterval o hacer que otros servicios envíen el último tiempo restante). Node.js no conoce la información de tiempo restante de ninguna tarea asíncrona.

De esta manera, puede realizar un seguimiento de todas las solicitudes en ejecución y su tiempo restante. Antes de que se devuelva una solicitud, puede verificar el "algún lugar" anterior para calcular el tiempo restante de todas las solicitudes. Este "algún lugar" podría ser una variable global, una base de datos de memoria como Redis o incluso una base de datos simple como MySQL.

Tenga en cuenta: el tiempo restante calculado no sería exacto, ya que la lectura y el cálculo en sí costarían tiempo e introducirían errores.

about 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