Hello,
Petite interrogation...
Qu'est-ce qu'il se passe si je lance un script PHP et que je ferme ma fenetre avant la fin du traitement ? J'imaginais que le script s'arretait en cours de route, mais il semblerait qu'il continue de s'exécuter jusqu'à atteindre le MAX_EXECUTION_TIME. Quelqu'un peut confirmer ?
Je suis en train de simuler un Cron Unix en php, avec un script qui tournerait en boucle et qui gérerait donc des taches planifiées.
Pour ça j'ai donc enlevé la limite de temps avec set_time_limit(0) et ait ensuite fait une boucle while (true) qui contient un sleep(), de façon a répéter toujours la même opération à intervalles réguliers...
Bien sur, j'ai beau n'en être que début du projet, j'ai mis un système pour éviter que plusieurs Cron ne se lancent en même temps, mais ça n'empeche que je viens de me faire trés trés peur... sachant que j'avais beau arreter mon script en fermant mon navigateur, il continuait de tourner en arriere plan indéfiniment...
Voici un le bout de code qui fait bobo si on le laisse faire :
Le seul moyen d'arreter cette boucle est donc de rajouter un fichier stop.txt dans le même dossier...
Bref, à moins d'avoir prévu à l'avance le moyen d'arreter la boucle folle ou de couper le serveur j'ai pas trouvé d'autre moyen d'arreter le script.
Si quelqu'un pouvait me reprendre et me dire que je dis de grosses grosses bétises, ça m'arrangerait, sinon ça risque d'être dangereux comme script
Modifié par Tymlis (11 Oct 2007 - 18:50)
Petite interrogation...
Qu'est-ce qu'il se passe si je lance un script PHP et que je ferme ma fenetre avant la fin du traitement ? J'imaginais que le script s'arretait en cours de route, mais il semblerait qu'il continue de s'exécuter jusqu'à atteindre le MAX_EXECUTION_TIME. Quelqu'un peut confirmer ?
Je suis en train de simuler un Cron Unix en php, avec un script qui tournerait en boucle et qui gérerait donc des taches planifiées.
Pour ça j'ai donc enlevé la limite de temps avec set_time_limit(0) et ait ensuite fait une boucle while (true) qui contient un sleep(), de façon a répéter toujours la même opération à intervalles réguliers...
Bien sur, j'ai beau n'en être que début du projet, j'ai mis un système pour éviter que plusieurs Cron ne se lancent en même temps, mais ça n'empeche que je viens de me faire trés trés peur... sachant que j'avais beau arreter mon script en fermant mon navigateur, il continuait de tourner en arriere plan indéfiniment...
Voici un le bout de code qui fait bobo si on le laisse faire :
set_time_limit(0);
//Boucle à priori sans fin
while (true) {
//On créé un fichier
$file = fopen(mktime().".txt", "w");
fclose($file);
//On se laisse une porte de sortie pour arreter le script s'il s'emballe trop quand même
if (file_exists("stop.txt")) die();
}
Le seul moyen d'arreter cette boucle est donc de rajouter un fichier stop.txt dans le même dossier...
Bref, à moins d'avoir prévu à l'avance le moyen d'arreter la boucle folle ou de couper le serveur j'ai pas trouvé d'autre moyen d'arreter le script.
Si quelqu'un pouvait me reprendre et me dire que je dis de grosses grosses bétises, ça m'arrangerait, sinon ça risque d'être dangereux comme script

Modifié par Tymlis (11 Oct 2007 - 18:50)