Junior — Middle
Ako určiť optimálny čas čakania na vykonanie požiadaviek?
sobes.tech AI
Odpoveď od AI
Optimálny čas čakania (timeout) na vykonanie požiadaviek v Go je určený rovnováhou medzi potrebou počkať na odpoveď a želaním neblokovať program príliš dlho.
Na určenie optimálneho času:
- Zmerajte priemerný a maximálny čas odozvy servera za reálnych podmienok.
- Pridajte rezervu (napríklad 20-30 %) na zohľadnenie špičiek zaťaženia a oneskorení.
- Zohľadnite požiadavky na používateľskú skúsenosť — príliš dlhý timeout môže zhoršiť reakciu.
V Go je možné timeouty nastaviť cez kontext alebo nastavenia 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)
Tu je 2 sekundy príkladom optimálneho timeoutu, ktorý je potrebné experimentálne určiť.