Junior — Middle
Kuidas määrata optimaalse ootamise aeg päringute täitmiseks?
sobes.tech AI
Vastus AI-lt
Go keeles päringute jaoks optimaalne ooteaeg (timeout) määratakse tasakaalu kaudu vastuse ootamise vajaduse ja programmi liiga pika blokeerimise soovi vahel.
Optimaalse aja määramiseks:
- Mõõtke reaalses olukorras serveri keskmine ja maksimaalne vastamisaeg.
- Lisage varu (näiteks 20-30%), et arvestada tipptundide ja viivitustega.
- Arvestage kasutajakogemuse nõudeid — liiga pikk timeout võib halvendada reageerimisvõimet.
Go-s saab timeout-e määrata konteksti või kliendi seadistuste kaudu:
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
req, _ := http.NewRequestWithContext(ctx, "GET", url, nil)
resp, err := http.DefaultClient.Do(req)
Siin on 2 sekundit näide optimaalsest timeout-ist, mis tuleb katse-eksituse teel määrata.