temps maximum par tour de boucle php

temps maximum par tour de boucle php - PHP - Programmation

Marsh Posté le 10-05-2012 à 16:40:46    

Bonjour, quelqu'un serai faire un stopper un tour de boucle mais pas la boucle en fonction du temps?
sachant que set_time_limit() clôture la page de traitement  
Cordialement

Reply

Marsh Posté le 10-05-2012 à 16:40:46   

Reply

Marsh Posté le 10-05-2012 à 17:48:34    

Je pense que tu peux un truc du genre :
1) avant le début de la boucle, tu récupères l'heure courante via microtime()
2) tu rentres dans la boucle et fais le traitement qu'il y a dedans
3) juste avant la fin de la bouche, tu récupère à nouveau l'heure courante via microtime() et tu regardes si la différence entre le temps entre cette étape et l'étape 1) est supérieure à une valeur. Si oui, tu fais break; (interruption de la boucle courante (que ce soit un for, un while ou un switch).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-05-2012 à 10:06:50    

si dans ma boucle tant que la condition n'est pas respectée je sleep(). Je suis en attente, Est ce correct? Est ce que sa ne fera pas une boucle infini ou alors une fois la condition respectée je sort de la boucle ?


Message édité par kenwol le 11-05-2012 à 10:07:19
Reply

Marsh Posté le 11-05-2012 à 10:15:57    

sleep() bloque l'exécution du script php.
 
En fait, tu pourrais reformuler ton besoin en français parce que ton premier post est difficilement compréhensible :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 11-05-2012 à 10:24:13    

^^ d'accord,
-page de récupération des modèle:
J'ai une liste de modèle à exécuter.
Je commence un boucle sur la liste.
Comme vu dans un autre topic, je vais exécuter ce modèle dans une autre page celle du traitement du modèle sauf que chaque modèle possède un temps maximum d’exécution.
Donc dans la première page j’attends que le traitement du modèle soit terminé ou qu'il est planté donc utilisation d'une boucle d'attente ayant pour condition : tant que le temps maximum n'est pas dépassé et que le temps d’exécution enregistré dans la bdd est toujours à 0 (signe que le traitement n'est pas fini) alors j’attends. Une fois sorti de la boucle je passe à un autre modèle

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed