Junior — Middle
¿Qué métodos se pueden utilizar para prevenir el error 500 en caso de que expire el tiempo de espera de respuesta de la base de datos?
sobes.tech AI
Respuesta de la IA
Para evitar el error 500 debido a un tiempo de espera agotado al recibir respuesta de la base de datos en Go, se pueden usar varios enfoques:
-
Contexto con tiempo límite — usar
context.WithTimeoutpara limitar el tiempo de ejecución de la consulta a la base. -
Pool de conexiones — configurar correctamente el pool de conexiones para evitar bloqueos y retrasos.
-
Manejo de errores — manejar correctamente los errores de tiempo de espera y devolver respuestas comprensibles al cliente.
Ejemplo de uso de un contexto con tiempo límite:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
err := db.QueryRowContext(ctx, "SELECT ...").Scan(&result)
if err != nil {
if errors.Is(err, context.DeadlineExceeded) {
// manejo del tiempo de espera agotado
} else {
// otro error
}
}
Este enfoque ayuda a evitar bloqueos y a controlar el tiempo de espera de la respuesta de la base.