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:
-
Contexto com timeout — usar
context.WithTimeoutpara limitar o tempo de execução da consulta à base. -
Pool de conexões — configurar corretamente o pool de conexões para evitar bloqueios e atrasos.
-
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.