Bonjour,
J'ai un script très long (script.php) qui fait des opérations très longues. Je lance la page et j'attends 5 jours qu'il ai fini. Au fur et à mesure qu'il effectue ses calculs, il rentre des infos dans la base de données.
A côté de ça j'ai une page (graphique.php) qui présente le nombre d'enregistrements de cette base. Une page (ajax.php) est régulièrement appelée qui va compter le nombre d'enregistrement de la base.
Mon soucis est que lorsque je lance script.php plus rien ne marche. Les pages ajax.php sont mises en attente et j'ai la réponse seulement quand script.php a fini son travail. Du coup ça n'a aucun intérêt et je ne peux pas suivre l'évolution du script. On m'a dit que la meilleure manière de résoudre cela était plutot que de faire un script.php avec une grande boucle while, de faire plusieurs appels en ajax qui procèdent aux opérations à chaque appel. Mon souci est que cette méthode n'est pas envisageable car à partir du moment où les opérations de script.php sont lancées, aucune interruption ne doit être possible (ça fait partie des contraintes majeures de mon outil). Il y a d'ailleurs un ignore_abort_user(true) au début pour s'assurer qu'en cas de fermeture du navigateur, si le script a commencé, le script fini.
J'ai aussi été dirigé vers pcntl mais je n'y comprends rien et ça semble bien compliqué pour ce que je veux faire. Tout ce que j'aimerais c'est que script.php ne soit pas bloquant et que ajax.php puisse faire de petits appels pendant qu'il travaille pour voir où ça en est à peu près.
Partager