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

289
Views
¿Cómo puedo manejar el error "conectar ETIMEDOUT" cuando la URL está sobrecargada con "Cuellos de botella"?

Estoy publicando una solicitud con NodeJs. Aquí está mi código:

 var request = require('request'); var rp = require('request-promise'); async function sendRequest(obj){ try{ // TRY STARTS HERE var requestTarget = await rp({ method: 'POST', uri: obj.url, headers: { "accept": "*/*", "accept-language": "en-US,en;q=0.9,ar-AE;q=0.8,ar;q=0.7", "content-type": "application/x-www-form-urlencoded; charset=UTF-8", "sec-ch-ua": "\" Not A;Brand\";v=\"99\", \"Chromium\";v=\"99\", \"Google Chrome\";v=\"99\"", "sec-ch-ua-mobile": "?0", "sec-ch-ua-platform": "\"macOS\"", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-requested-with": "XMLHttpRequest", "cookie":obj.cookie, "Referer":obj.referer , "Referrer-Policy": "strict-origin-when-cross-origin" }, timeout:16000, body : obj.body }).then( (response)=>{ return response }) // TRY ENDS HERE }catch(error){ // catch STARTS HERE console.error( " error is :" +error); }// catch ENDS HERE console.log(" response is : " +requestTarget); }

De todos modos, tengo un problema con la solicitud: conecte ETIMEDOUT cuando ejecuto el código y no tengo idea de cómo solucionarlo.

¿Qué podría causar este error? y ¿cómo puedo manejar este servidor?

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

ETIMEDOUT significa que el servidor no respondió a su solicitud en el tiempo de espera dado (en su ejemplo, 16 segundos). Ese error se puede manejar en el bloque catch.

about 4 years ago · Juan Pablo Isaza Report

0

El título de su pregunta menciona que cree que su servidor de destino está sobrecargado. Los errores ETIMEDOUT pueden aparecer en esa situación. ¿Ataque de denegación de servicio?

No tiene mucho que pueda hacer en su código al intentar la conexión de salida, excepto detectar el error, esperar un período de tiempo e intentarlo nuevamente.

Idealmente, cada vez consecutiva que detecte el error, esperará el doble de tiempo antes de volver a intentarlo. Para la primera espera, use un segundo. Luego espera 2, 4, 8, 16 y así sucesivamente. Desea darle al servidor de destino la oportunidad de trabajar a través de su cola de conexión, y martillarlo ralentiza ese proceso.

Después de un minuto más o menos deberías rendirte. Envíe un error a su sistema de registro de errores si tiene uno. Si su servicio es un servicio web, envíe a SU cliente un 500 (error de servidor genérico), 502 (puerta de enlace incorrecta al servidor ascendente) o 504 (tiempo de espera agotado del servidor ascendente), según lo que tenga sentido para su aplicación.

Si también controla el servidor de destino, puede averiguar qué está sucediendo allí. Es posible que necesite más capacidad. O un cliente deshonesto puede estar dando en el blanco muy fuerte. Es posible que su objetivo esté experimentando un ataque de denegación de servicio.

Manejar los errores de ETIMEDOUT es un dolor en el xxx. Si su servicio no es de misión crítica y esto no sucede muy a menudo, simplemente puede emitir el error 500, 502 o 504 a su cliente. Sin embargo, no olvide registrar el error: arreglar la situación puede requerir intervención humana.

about 4 years ago · Juan Pablo Isaza 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!