Sobes.tech
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:

  1. Mõõtke reaalses olukorras serveri keskmine ja maksimaalne vastamisaeg.
  2. Lisage varu (näiteks 20-30%), et arvestada tipptundide ja viivitustega.
  3. 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.