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:
- Změřte průměrnou a maximální dobu odezvy serveru za reálných podmínek.
- Přidejte rezervu (například 20-30 %) pro zohlednění špiček zatížení a zpoždění.
- 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.