Executer un script à intervalle de temps régulier sans être gourmand

Executer un script à intervalle de temps régulier sans être gourmand - PHP - Programmation

Marsh Posté le 30-06-2004 à 16:57:58    

Bonjour à tous,
 
Tout d'abord désolé pour le titre du topic, j'ai pas trouvé mieux.
 
Voilà en fait je dois faire un programme qui doit copier des images sur le disque toutes les n secondes ou minutes.
J'ai donc voulu utiliser un algo qui bloque l'execution du script tant que le temps séparant la copie de 2 images ne s'est pas écoulé. En d'autres termes, si je veux recopier des images sur le disque toutes les n minutes, je recopie une image, puis je reste coincé dans un while n minutes, puis je recopie une autre image etc ...
Le problème est que cet algo est très très très gourmand. C'est simple, l'utilisation du PC en devient presque impossible.
J'ai essayé le même système d'attente avec du javascript et j'en suis arrivé au même résultat.
J'aurai donc voulu savoir si il n'existait pas un autre moyen de déclencher des scripts php à intervalle de temps régulier mais qui cette fois ne serait pas trop gourmand.
L'idéal serait l'équivalent du sleep c++ car j'ai testé le sleep() php et c'est uniquement quand il a finit d'attendre toutes ces n minutes qu'il copie tout d'un coup.
 
Merci d'avance :) , voici ma petite fonction d'attente :
 
                set_time_limit(0);  
 
 
     $copie=false;
     $then=time();
    $now=$then;
     
 
     while( ($now-$then)<=$delai )
     {
              $now=time();
             if(($now-$then)==$delai)
                 $copie=true;
         }


Message édité par Sundaz le 30-06-2004 à 17:00:31
Reply

Marsh Posté le 30-06-2004 à 16:57:58   

Reply

Marsh Posté le 30-06-2004 à 19:39:33    

www.webcron.org peut être  [:sinclaire]


Message édité par Ex-Floodeur le 30-06-2004 à 19:39:46

---------------
Saint Seiya  || La Livebox || Europe, débats, réflexions
Reply

Marsh Posté le 30-06-2004 à 19:52:15    

php n'est pas fait pour ça....
 
mais bon, crontab ou webcron pourront t'aider


---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 01-07-2004 à 10:01:04    

Ok, merci pour vos réponses. J'avais déjà entendu parler de ces solutions mais je pensais pouvoir m'en sortir sans. J'étudierai celà plus en détail.
 
Par contre, j'ai dis une bêtise dans mon premier post au sujet du sleep php.
En effet, si, dans la même page, je copie une image, puis sleep(n), puis copie etc... je vais bien avoir mes copies ordonnées dans le temps.
Donc jusqu'ici ça répond parfaitement à ce que je dois faire. Mais un nouveau problème s'ajoute car en fait, la copie se fait après qu'un formulaire ait été soumis.
Donc je fais form.submit() qui déclenche la copie via la page de destination du formulaire puis sleep etc... Et c'est dans ce cas que les copies se font en même temps à la fin de tous les sleep.
 
Donc si vous aviez une idée du problème, ça serait sympa de m'éclairer =)

Reply

Marsh Posté le 02-02-2011 à 23:50:25    

Un vieux vieux Post mais qui ne trouve aucune réponse sur le web !
 
J'ai enfin trouvé la solution ! Pour tout vous dire, j'en ai fait un tutoriel pour que celle-ci demeure et puisse aider d'autres personnes tant le nombre de non-réponse est important !   :p  
 
Tutoriel - Exécuter un script PHP à intervalle régulier
 
Simple et efficace !  :sol: Bonne lecture !
 

Reply

Sujets relatifs:

Leave a Replay

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