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

203
Visualizações
Manejo de errores y recuperación con el cliente node pg (postgres)

Estoy usando el módulo de nodo pg en mi aplicación y quiero asegurarme de que pueda manejar correctamente los errores de conexión y consulta.

El primer problema que tengo es que quiero asegurarme de que pueda recuperarse correctamente cuando Postgres no esté disponible.

Encontré que hay un evento de error para poder detectar si hay un error de conexión.

 import pg from 'pg' let pgClient = null async function postgresConnect() { pgClient = new pg.Client(process.env.CONNECTION_STRING) pgClient.connect() pgClient.on('error', async (e) => { console.log('Reconnecting') await sleep(5000) await postgresConnect() }) }

No me gusta usar un global aquí, y quiero configurar el retraso de suspensión para hacer un pequeño retroceso exponencial. Noté que "Reconectando" se dispara dos veces inmediatamente, luego espera cinco segundos y no estoy seguro de por qué se disparó la primera vez sin esperar.

También tengo que asegurarme de que las consultas se ejecuten. Tengo algo como esto que estaba probando.

 async function getTimestamp() { try { const res = await pgClient.query( 'select current_timestamp from current_timestamp;' ) return res.rows[0].current_timestamp } catch (error) { console.log('Retrying Query') await sleep(1000) return getTimestamp() } }

Esto parece funcionar, pero no lo he probado lo suficiente como para asegurarme de que garantizará que la consulta se ejecute o siga intentándolo. Debería buscar errores específicos y solo repetir para siempre en ciertos errores y fallar en otros. Necesito investigar más para encontrar qué errores se arrojan. También necesito hacer un retroceso en el retraso aquí también.

Todo "parece" funcionar, no quiero ser víctima del efecto Dunning-Kruger. Necesito asegurarme de que este proceso pueda manejar todo tipo de situaciones y recuperarse.

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