Sobes.tech
Junior — Middle

Jak určit optimální dobu čekání na provedení požadavků?

sobes.tech AI

Odpověď od AI

Optimální doba čekání (timeout) pro provádění požadavků v Go je určena rovnováhou mezi potřebou počkat na odpověď a přáním neblokovat program příliš dlouho.

Pro stanovení optimální doby:

  1. Změřte průměrnou a maximální dobu odezvy serveru za reálných podmínek.
  2. Přidejte rezervu (například 20-30 %) pro zohlednění špiček zatížení a zpoždění.
  3. Zohledněte požadavky na uživatelskou zkušenost — příliš dlouhý timeout může zhoršit odezvu.

V Go lze timeouty nastavovat přes kontext nebo nastavení klienta:

ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
req, _ := http.NewRequestWithContext(ctx, "GET", url, nil)
resp, err := http.DefaultClient.Do(req)

Zde je 2 sekundy příkladem optimálního timeoutu, který je třeba experimentálně určit.