Sobes.tech
Junior — Middle

Que métodos podem ser utilizados para evitar o erro 500 no caso de expiração do tempo de espera da resposta da base de dados?

sobes.tech IA

Resposta da IA

Para evitar o erro 500 devido a um tempo de espera esgotado ao receber resposta da base de dados em Go, podem ser utilizados vários métodos:

  1. Contexto com timeout — usar context.WithTimeout para limitar o tempo de execução da consulta à base.

  2. Pool de conexões — configurar corretamente o pool de conexões para evitar bloqueios e atrasos.

  3. Tratamento de erros — tratar corretamente os erros de timeout e devolver respostas compreensíveis ao cliente.

Exemplo de uso de contexto com timeout:

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) {
        // tratamento de timeout
    } else {
        // outro erro
    }
}

Este método ajuda a evitar bloqueios e a controlar o tempo de espera da resposta da base.