Sobes.tech
Senior

Există o funcție `unpredictableFunc()`, pe care trebuie să o înveliți astfel încât să se execute cu un timeout (de exemplu, 1 secundă) și să se înregistreze timpul de execuție. // Există o funcție care funcționează indefinit și returnează un număr. // Corpul său nu poate fi modificat (să presupunem că în interior există o solicitare de rețea). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Trebuie modificată funcția de înveliș, care va funcționa cu un timeout stabilit (de exemplu, 1 secundă). // Dacă "funcția lungă" s-a terminat în acest timp, excelent, returnăm rezultatul. // Dacă nu, returnăm o eroare. Rezultatul funcției în acest caz nu este important. // // În plus, trebuie măsurat cât timp a durat această funcție (pur și simplu afișând în log). // Semnătura funcției de înveliș poate fi modificată. func predictableFunc() int64 { return unpredictableFunc() }