Sobes.tech
Junior — Middle

Como é que se pode determinar que uma consulta específica está a ser executada com atraso?

sobes.tech IA

Resposta da IA

Para determinar se uma solicitação específica está a atrasar-se em Go, pode medir o tempo de execução da solicitação usando o pacote time.

Exemplo:

package main

import (
    "fmt"
    "net/http"
    "time"
)

func main() {
    start := time.Now()

    resp, err := http.Get("https://example.com")
    if err != nil {
        fmt.Println("Erro na solicitação:", err)
        return
    }
    defer resp.Body.Close()

    duration := time.Since(start)
    fmt.Printf("Tempo de execução da solicitação: %v\n", duration)

    // Se o tempo for maior que o limite, consideramos que há atraso
    threshold := 500 * time.Millisecond
    if duration > threshold {
        fmt.Println("A solicitação está atrasada")
    } else {
        fmt.Println("Solicitação rápida")
    }
}

Desta forma, medindo o tempo desde o início até ao final da solicitação, pode determinar se ela excede o limite permitido e considerá-la "atrasada".