Sobes.tech
Senior

Er is een functie `unpredictableFunc()`, die moet worden omhuld zodat deze wordt uitgevoerd met een timeout (bijvoorbeeld 1 seconde) en de uitvoeringstijd wordt gelogd. // Er is een functie die ononderbroken werkt en een getal retourneert. // De inhoud ervan mag niet worden gewijzigd (stel dat er een netwerkverzoek binnenin is). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // De wrapperfunctie moet worden aangepast, zodat deze werkt met een ingestelde timeout (bijvoorbeeld 1 seconde). // Als de "lange" functie binnen die tijd klaar is, is dat geweldig, we geven het resultaat terug. // Zo niet, dan geven we een fout terug. Het resultaat van deze uitvoering is in dat geval niet belangrijk. // // Daarnaast moet worden gemeten hoe lang deze functie heeft geduurd (gewoon in de log zetten). // De handtekening van de wrapperfunctie mag worden gewijzigd. func predictableFunc() int64 { return unpredictableFunc() }