Bonjour,
Je suis actuellement bloqué sur un problème.
Je souhaite faire appel a un script long en php qui se lance en tache de fond.
Pour l'heure j'ai un script ajax qui appel une page php (jusque là pas de problème).
Mon script s'éxécute une première fois et se que je voudrai c'est que tant que le traitement sur la base de donnée n'est pas terminé, il recommence.
Donc j'ai penser dans un premier temps faire un truc du genre :
Le traitement d'une ligne par appel de page est surtout parce que je suis limité à 30sec d'exécution et que 30sec correspond a environ 10 exécution complète. je suis mal barré pour mes 3000 restante.
donc si j'exécute la page toute seule via l'url elle marche nickel. mais moi je veux la lancé en tache de fond, et donc l'ajax ne me permet pas de rechargé la page ainsi.
Je me suis donc tournée vers du exec() mais je ne trouve pas vraiment comment le mettre en oeuvre.
afin de tester la fonction exec j'ai fait deux page .php et une .txt.
ma page .txt est en chmod 777
Ma page plump.php est celle que je lance via le navigateur :
Et ma page nours.php est celle appellez par exec() :
<
Et là, c'est le drame, rien ne se passe.
Je suis sur serveur mutualisé d'ovh. mais mon code pourrai se retrouvé sur d'autre platforme...
Alors comment faire pour que sois mon code php de traitement boucle sur plus de 12h sans problème ou bien comment faire pour lancé ma page de script php via un autre script php le tout sans problème ?
J'ai regardé pour du cron, mais je n'ai pas trouvé d'explication simple pour le mettre en oeuvre via php sans intervention serveur.
Merci d'avance pour vos réponses.
Je suis actuellement bloqué sur un problème.
Je souhaite faire appel a un script long en php qui se lance en tache de fond.
Pour l'heure j'ai un script ajax qui appel une page php (jusque là pas de problème).
Mon script s'éxécute une première fois et se que je voudrai c'est que tant que le traitement sur la base de donnée n'est pas terminé, il recommence.
Donc j'ai penser dans un premier temps faire un truc du genre :
Code:
<?php
bla bla bla //mon traitement complet pour une ligne de ma base avec un tas de fonction lente pour arrangé le tout
if(maListATraité=pas fini)
{
header('location:mapage.php');
}
?>
Le traitement d'une ligne par appel de page est surtout parce que je suis limité à 30sec d'exécution et que 30sec correspond a environ 10 exécution complète. je suis mal barré pour mes 3000 restante.
donc si j'exécute la page toute seule via l'url elle marche nickel. mais moi je veux la lancé en tache de fond, et donc l'ajax ne me permet pas de rechargé la page ainsi.
Je me suis donc tournée vers du exec() mais je ne trouve pas vraiment comment le mettre en oeuvre.
afin de tester la fonction exec j'ai fait deux page .php et une .txt.
ma page .txt est en chmod 777
Ma page plump.php est celle que je lance via le navigateur :
Code:
<?php
exec(getcwd().'test_mail/nours.php');
?>
<
Code:
?php
$fp=fopen('test.txt', "a+");
fwrite($fp, "nounours\n");
fclose($fp);
?>
Et là, c'est le drame, rien ne se passe.
Je suis sur serveur mutualisé d'ovh. mais mon code pourrai se retrouvé sur d'autre platforme...
Alors comment faire pour que sois mon code php de traitement boucle sur plus de 12h sans problème ou bien comment faire pour lancé ma page de script php via un autre script php le tout sans problème ?
J'ai regardé pour du cron, mais je n'ai pas trouvé d'explication simple pour le mettre en oeuvre via php sans intervention serveur.
Merci d'avance pour vos réponses.