`unpredictableFunc()` ფუნქციას უნდა შევკრათ ისე, რომ ის შესრულდეს დროის შეზღუდვით (მაგალითად, 1 წამი) და ჩაწეროს შესრულების დრო.
// არსებობს ფუნქცია, რომელიც უსასრულოდ მუშაობს და აბრუნებს რიცხვს.
// მისი სხეული არ შეიძლება შეიცვალოს (წარმოიდგინეთ, რომ შიგნით არის ქსელური მოთხოვნა).
func unpredictableFunc() int64 {
rnd := rand.Int63n(5000)
time.Sleep(time.Duration(rnd) * time.Millisecond)
return rnd
}
// საჭიროა შეცვალოთ შემკრავი ფუნქცია, რომელიც იმუშავებს მითითებულ დროის შეზღუდვით (მაგალითად, 1 წამი).
// თუ "გრძელი" ფუნქცია ამ დროს დასრულდა, მშვენიერია, ვუბრუნებთ შედეგს.
// თუ არა, ვუბრუნებთ შეცდომას. ამ შემთხვევაშიც, შედეგი არ არის მნიშვნელოვანი.
//
// ასევე, საჭიროა ზომა რამდენი დრო დასჭირდა ამ ფუნქციის შესრულებას (სრულიად შესაძლებელია, უბრალოდ გამოიტანეთ ლოგში).
// შემკრავი ფუნქციის სიგნატურას შეიძლება შეიცვალოს.
func predictableFunc() int64 {
return unpredictableFunc()
}