Sobes.tech
Senior

Il y a une fonction `unpredictableFunc()`, qui doit être enveloppée pour s'exécuter avec un délai d'expiration (par exemple, 1 seconde) et enregistrer le temps d'exécution. // Il y a une fonction qui fonctionne indéfiniment et retourne un nombre. // Son corps ne peut pas être modifié (supposons qu'il s'agit d'une requête réseau à l'intérieur). func unpredictableFunc() int64 { rnd := rand.Int63n(5000) time.Sleep(time.Duration(rnd) * time.Millisecond) return rnd } // Il faut modifier la fonction d'enveloppement, qui fonctionnera avec un délai défini (par exemple, 1 seconde). // Si la "longue" fonction s'est exécutée dans ce temps, c'est parfait, on retourne le résultat. // Sinon, on retourne une erreur. Le résultat de cette exécution n'est pas important. // // De plus, il faut mesurer combien de temps cette fonction a été en exécution (simplement l'afficher dans le log). // La signature de la fonction d'enveloppement peut être modifiée. func predictableFunc() int64 { return unpredictableFunc() }