/ / comment exécuter un php à la fin du script en cours - php

comment exécuter un php quand le script en cours se termine - php

comment exécuter un php lorsque le script actuel a fini d'utiliser curl? ne peut pas utiliser shell ou set_time_limit pour boucler le script.

ÉDITER: Je veux pouvoir utiliser curl pour appeler le même script, mais quand j'utilise curl_exec, je ne veux pas que le script attende la fin de curl, je veux juste qu'il appelle la page et continue sans avancer la fin de curl .

MODIFIER:

en utilisant ce code au début du script

ignore_user_abort(true);
header("Content-Length: 0");
header("Connection: close");
flush();

puis en utilisant curl pour que le script l'appelle fonctionne automatiquement sur Windows, mais sur linux, il ne fonctionne pas! aka, je veux que curl appelle une page et n'attende pas de réponse

Merci

Réponses:

3 pour la réponse № 1

Vous souhaitez pouvoir exécuter une demande CURL sans l'attendre.

Normalement, vous "d démarrez un nouveau thread pour y exécuter la requête CURL, mais PHP ne prend pas en charge le multithreading.

Avec popen ou proc_open, vous pouvez exécuter un processus d'arrière-plan, si vous êtes autorisé à l'utiliser. Vous pouvez exécuter un script PHP CLI pour exécuter votre demande CURL.

Une autre idée est d'écrire simplement la demande dans une table DB et d'avoir un sondage de script CLI cron qui table toutes les X minutes et d'exécuter toute demande en attente.


1 pour la réponse № 2

Trouvé le:

en ajoutant ceci au début du script:

ignore_user_abort(true);
header("Content-Length: 256");
header("Connection: close");
echo(str_repeat(" ",256));
@ob_flush();
@flush();
@ob_end_flush();

puis appelez ce 1_script à partir d'un autre 2_script viacurl permet à l'autre 2_script de terminer son processus sans attendre la fin de 1_script! . c'est juste que curl ne lira pas l'en-tête "connection: close" avant que 256 byes ne soient reçus, donc nous les envoyons via des espaces :)