Agregar retry logic para conexión inicial a PostgreSQL
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m4s
- Implementar 5 reintentos con 2s de delay entre cada uno - Resolver error de autenticación en primera carga - PostgreSQL necesita tiempo para ejecutar 00_configure_auth.sh - App ahora espera automáticamente hasta que auth esté configurado Esto resuelve el error 28P01 (password authentication failed) que ocurría solo en la primera conexión después del deploy.
This commit is contained in:
@@ -23,6 +23,7 @@ export function getPool(): pg.Pool {
|
||||
|
||||
pool = new Pool(config)
|
||||
|
||||
// Manejo de errores del pool
|
||||
pool.on('error', (err) => {
|
||||
console.error('Error inesperado en el pool de PostgreSQL:', err)
|
||||
})
|
||||
@@ -33,6 +34,27 @@ export function getPool(): pg.Pool {
|
||||
console.log('Nueva conexión establecida con PostgreSQL')
|
||||
})
|
||||
}
|
||||
|
||||
// Verificar conexión inicial con retry
|
||||
let retries = 5
|
||||
const tryConnect = async () => {
|
||||
try {
|
||||
const client = await pool!.connect()
|
||||
console.log('✅ Conexión inicial a PostgreSQL exitosa')
|
||||
client.release()
|
||||
} catch (err: any) {
|
||||
retries--
|
||||
if (retries > 0) {
|
||||
console.log(`⚠️ Conexión a PostgreSQL falló, reintentando... (${retries} intentos restantes)`)
|
||||
setTimeout(tryConnect, 2000) // Reintentar en 2 segundos
|
||||
} else {
|
||||
console.error('❌ No se pudo conectar a PostgreSQL después de varios intentos:', err.message)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Ejecutar verificación inicial en background
|
||||
tryConnect()
|
||||
}
|
||||
|
||||
return pool
|
||||
|
||||
Reference in New Issue
Block a user