-
Arrêter un script
Bonjour à tous,
Sur un formulaire, le gestionnaire de mon site peut lancer des traitements sur le serveur (php) via une demande en ajax. Un traitement peut prendre plus d'une heure (perçage de fichier .... etc ).
J'essaie de mettre une place une fonctionnalité d’interruption, sans succès.
Une 2ème requête, pour arrêter l’exécution, exécute un script qui créé une variable $globals['Stop'] = true;
Et dans le traitement du 1er script j'ai :
Code:
if (isset($GLOBALS['Stop'])) { unset($GLOBALS['Stop']); die; }
Cela ne fonctionne pas :(
Est ce que les variables globals sont capturées au lancement du script et ne sont plus accessibles pendant l'éxécution ?
Merci par avance à celui qui pourra m'éclairer.
-
$GLOBALS c'est "globale" au niveau du script, pas du serveur.
Tu pourrais placer un fichier quelque part dont la présence signifierait "stop"
-
Arfouille ...
Le plus gros traitement se fait sur un fichier de 160Mo, 120000 enregistrements, pour a peu près 1h30 de traitement.
J'avais pensé à la création de fichier, mais même si ce n'est pas très propre, cela ralentirait encore le script, même si je faisais la vérification que tous les 50 enregistrements par exemple.
A ta connaissance il n'a pas de type de variable en php qui puisse en commune à différentes exécution de script ?
-
Je pense que APC peut répondre à ton besoin :
http://fr2.php.net/apc
-
Merci pour la réponse, je vais me pencher sur le sujet.