Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

191
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!