Sobes.tech
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:

  1. Contexto con tiempo límite — usar context.WithTimeout para limitar el tiempo de ejecución de la consulta a la base.

  2. Pool de conexiones — configurar correctamente el pool de conexiones para evitar bloqueos y retrasos.

  3. 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.