Bonjour,
J'ai un script qui lance l'exécution d'un 1er traitement (externe) durant X secondes (durée variable et défini). A la fin de ce traitement, j'en lance un 2eme. Entre le 1er traitement et le second, j'ai besoin d'avoir une temporisation du script pendant le 1er traitement.
Pendant cette temporisation, j'ai fais un script qui m'affiche le temps d'avancement :
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
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
27 $HcMax = 1600; $i = 0; // Initialisation variable sauvegarde de la position d'avancement $BakAvancement = 0; // Calcul temps de traitement en seconde $x = strtotime($HcMax) - time(); $x = ($x<0)?0:$x; echo "Temps total du traitement : $x\n"; do{ // Calcul avancement traitement - arrondi à l'entier supérieur $Avancement = ceil($i * 100/$x); // Affichage de l'avancement du traitement if($Avancement != $BakAvancement){ echo "Avancement : $i sur $x\n"; echo "$Avancement%\n"; } // Sauvegarde de la position d'avancement $BakAvancement = $Avancement; // Pause sleep(1); $i++; }while(date('Hi') < $HcMax); echo "Traitement terminé";
Cela fonctionne bien, mais je me dis que cela n'est pas la meilleur solution car si mon compteur prend du retard, je vais avoir un état d'avancement faussé. Après, j'ai toujours ma sortie de boucle qui me fera sortir de la tempo à l'heure donné.
Qu'en pensez vous ? Auriez vous des idées d'améliorations ?
Partager