1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import time
import random
def timer(fonction_travail, maxi, datas):
# fonction à durée fixe*
t0 = time.perf_counter()
print("start ...")
try:
ret = fonction_travail(datas)
finally:
t1 = time.perf_counter()
duree = t1 - t0
print(f' # {duree:0.4f}')
if duree > maxi:
raise TimeoutError(f"Oups, trop long, plus de {maxi} secondes")
else:
print(f" # Attendre {maxi - duree} secondes ...")
time.sleep(maxi - duree)
return ret
def travail(datas):
# calcul et de commande de servos moteurs
time.sleep(random.randint(1, 5))
for i in range(8):
timer(travail, 4, i) |
Partager