Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/12/2010, 11h19   #1
Invité de passage
 
Inscription : août 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4
Points : 2
Points : 2
Par défaut Traitement continu d'une tache

Bonjour,

Suis-je confronté à une limitation de PHP ?

Je veux exécuter une traitement la nuit pendant un laps de temps assez grand (exemple de 22h a 5h) pour exécuter des importations et des mises à jours de valeurs. Comment faire pour que la tache s'exécute en boucle ?

Piste d'idée faire une task CRON pour lancer une tache (je travaille avec symfony 1.2 pour informations) mais comment répéter cette tache en boucle ?

Peut-être en relançant la même taches après une partie du traitement (pour ne pas arriver à la limite du temps d'exécution ? Mais dans ce cas en cas de plantage d'une tâche je ne peut assurer sa continuité ?

Peut-être en exécutant une tache Cron toutes les "max_execution_time ? mais je perd du temps de calcul en faisant cela ?

Avez-vous une idée ?
elife63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 11h46   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
C'est plutot une problèmatique Cron : il est peut etre possible de repeter une tâche.

tu peux aussi lire
http://matthieu.developpez.com/execution_periodique/
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 14h01   #3
Invité de passage
 
Inscription : août 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4
Points : 2
Points : 2
Merci de ta réponse tu pense qu'il faut que je m oriente vers un cron.

Que pensez vous des outils comme Gearman ou encore Supervisor ?

Je viens de tester supervisor c'est assez pratique pour lancer une tache en boucle (avec possibilité de couper la tache en fonction des EXIt STATUS) mais par contre pour enchainer des taches ca me semble très complexe.
elife63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/12/2010, 15h05   #4
Membre actif
 
Avatar de Epica84
 
Christophe GUALANO
Étudiant
Inscription : décembre 2008
Messages : 164
Détails du profil
Informations personnelles :
Nom : Christophe GUALANO
Âge : 22
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2008
Messages : 164
Points : 156
Points : 156
Envoyer un message via MSN à Epica84
Citation:
Envoyé par elife63 Voir le message
Bonjour,

Suis-je confronté à une limitation de PHP ?
Déjà sympa un peu de politesse . Mais je trouve que la question vous auriez dût la mettre à la fin.

Citation:
Envoyé par elife63 Voir le message
Je veux exécuter une traitement la nuit pendant un laps de temps assez grand (exemple de 22h a 5h) pour exécuter des importations et des mises à jours de valeurs. Comment faire pour que la tache s'exécute en boucle ?
Tâches windows possible je pense que vous pouvez lancez le script dans le gestionnaires des taches de windows @ 22 heures et le 'forcer' à s'arrêter à 5 heures.

Citation:
Envoyé par elife63 Voir le message
Piste d'idée faire une task CRON pour lancer une tache (je travaille avec symfony 1.2 pour informations) mais comment répéter cette tache en boucle ?
Connais pas, je fais mes script

Citation:
Envoyé par elife63 Voir le message
Peut-être en relançant la même taches après une partie du traitement (pour ne pas arriver à la limite du temps d'exécution ? Mais dans ce cas en cas de plantage d'une tâche je ne peut assurer sa continuité ?
set_time_limit ??? C'est une fonction PHP qui permet de ralonger le temps d'éxecution du script
Code :
set_time_limite(3000);// cette ligne veut dire que le php.ini du serveur ou du local sera exécuter pendant 3000 secondes // !! Le script peut s'arretez avant mais si il n'a pas de boucle de sorti il s'executera jusqu'à 3000 secondes !! \\
Sinon pour le plantage, vous auriez du gerer dans le code les éventuelles contraintes la on entre dans un autre problème (perte de la connexion, on se fait virer par le site d'importation, micro-coupure, etc, ...)


Citation:
Envoyé par elife63 Voir le message
Peut-être en exécutant une tache Cron toutes les "max_execution_time ? mais je perd du temps de calcul en faisant cela ?

Avez-vous une idée ?
Je ne connais pas Cron ... mais max_execution_time je déconseille car si tu dois faire sleep dans ton code alors le max_execution_time ne sera pas affecté du temps du sleep ...

Voilà en espérant avoir eu une idée pour vous aidez
__________________
ARLES, du 02 au 05 Avril 2010, Féria de Pâques.
Epica84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/12/2010, 10h58   #5
Invité de passage
 
Inscription : août 2007
Messages : 4
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 4
Points : 2
Points : 2
Merci de votre réponse.
La politesse normalement cela me connait

Donc, si je résume, d'après vous je maximise le set_time_limite mais je ne touche pas au max_execution_time.

En ayant un peu plus test Supervisor, il est vraiment pratique pour faire une boucle de traitement. Mais par contre la programmation d'événements est assez complexes pour enchainer les taches.

Merci, Bonne journée.
elife63 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 11/12/2010, 02h24   #6
Membre actif
 
Avatar de Epica84
 
Christophe GUALANO
Étudiant
Inscription : décembre 2008
Messages : 164
Détails du profil
Informations personnelles :
Nom : Christophe GUALANO
Âge : 22
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2008
Messages : 164
Points : 156
Points : 156
Envoyer un message via MSN à Epica84
Si vous souhaitez affichez les résultats en temps voulu regarder
les fonction ob_flush()et flush cela affochera les résultats c'est un petit plus .

Moi perso c'est ce que je fais je set_time_limite(80000) comme ça je suis tranquille

Voilà
__________________
ARLES, du 02 au 05 Avril 2010, Féria de Pâques.
Epica84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h18.


 
 
 
 
Partenaires

Hébergement Web