Exécuter un script php en parallèle
Atropa
Messages postés
2051
Statut
Membre
-
sempotcool Messages postés 16 Statut Membre -
sempotcool Messages postés 16 Statut Membre -
Bonjour,
je voudrais savoir si il est possible d'exécuter un script php en parallèle du script courant sans que l'interruption du script courant ne l'affecte.
je voudrais faire une sorte de cron qui s'exécuterait que sur demande avec un bouton ou un lien pour le lancer et l'arrêter.
Je voudrais aussi savoir comment supprimer les sessions sur fermeture du navigateur.
j'ai testé avec connection_aborded() et connection_status() mais je n'arrive à rien.
merci d'avance
je voudrais savoir si il est possible d'exécuter un script php en parallèle du script courant sans que l'interruption du script courant ne l'affecte.
je voudrais faire une sorte de cron qui s'exécuterait que sur demande avec un bouton ou un lien pour le lancer et l'arrêter.
Je voudrais aussi savoir comment supprimer les sessions sur fermeture du navigateur.
j'ai testé avec connection_aborded() et connection_status() mais je n'arrive à rien.
merci d'avance
A voir également:
- Exécuter un script php en parallèle
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Ghost script - Télécharger - Polices de caractères
- Mas script - Accueil - Windows
- Expert php pinterest - Télécharger - Langages
4 réponses
Pour tes deux requêtes, je peux te proposer l'utilisation de Javascript avec AJAX : dans le premier cas, tu lances l'exécution du script en cliquant sur le bouton. La requête étant asynchrone, cela n'aura aucune conséquence sur la navigation. Pour l'arrêt du script en revanche, ce serait plus compliqué... il me faudrait plus d'infos sur son fonctionnement, peut-être pourrais-je te suggérer quelque chose...
Pour le second cas, idem : tu ajoutes un évènement javascript onunload avec une fonction qui envoie une requête à un script deconnexion.php avec en paramètre l'identifiant de session. Lorsque la fenêtre ou l'onglet en cours sera fermée, le script sera appelé. Problème : lorsque l'utilisateur change de page aussi ! Il faudrait donc mettre une condition sur le clic d'un lien par exemple.
De toutes daçons, la durée de vie d'une session est de l'ordre de quelques minutes, je ne suis pas sûr que ça vaille le coup de s'embêter là-dessus.
Pour le second cas, idem : tu ajoutes un évènement javascript onunload avec une fonction qui envoie une requête à un script deconnexion.php avec en paramètre l'identifiant de session. Lorsque la fenêtre ou l'onglet en cours sera fermée, le script sera appelé. Problème : lorsque l'utilisateur change de page aussi ! Il faudrait donc mettre une condition sur le clic d'un lien par exemple.
De toutes daçons, la durée de vie d'une session est de l'ordre de quelques minutes, je ne suis pas sûr que ça vaille le coup de s'embêter là-dessus.
ajax j'ai déjà essayé mais le script s'arrête dès que je coupe le navigateur.
je voulais faire un script utilisant les sockets. une boucle infini qu'on pourrait démarrer ou arrêter par formulaire...
bonsoir,
tout dabord merci pour ta réponse,
j'ai essayer de le faire en passant par un fichier et par sql pour le stopper mais ça ne fonctionne pas non plus
pour le lancer j'avais fais un formulaire qui modifier le fichier et qui m'ouvrait une seconde page avec cette boucle infini...
problème impossible d'utiliser un même fichier par 2 scripts en même temps
peut être reste il les sockets
donc j'ai essayé 2 chose :
la seconde :
je voulais faire un script utilisant les sockets. une boucle infini qu'on pourrait démarrer ou arrêter par formulaire...
bonsoir,
tout dabord merci pour ta réponse,
j'ai essayer de le faire en passant par un fichier et par sql pour le stopper mais ça ne fonctionne pas non plus
pour le lancer j'avais fais un formulaire qui modifier le fichier et qui m'ouvrait une seconde page avec cette boucle infini...
problème impossible d'utiliser un même fichier par 2 scripts en même temps
peut être reste il les sockets
donc j'ai essayé 2 chose :
while(true){
// Instructions comme vider les vieux fichiers temporaires par exemple.
fopen;fread;fclose; // je met ça comme ça parce que j'utilise des classes...
if(file == 0 ) break;
sleep(10);
}
la seconde :
do{
// Instructions comme vider les vieux fichiers temporaires par exemple.
sleep(10);
fopen;fread;fclose; // je met ça comme ça parce que j'utilise des classes...
}
while(file == 1);
pour la durée du script ce n'est pas un problème j'ai fais un page qui tourne pendant 20min pour tester les fonctions set_time_limit() et ignore_user_abort ()
sinon je peux le faire en c/c++ mais je ne sais pas comment faire communiquer php avec un logiciel en c/c++
mais mon principal problème et de lancer un script sans l'afficher et en ajax le script s'arrete des que je ferme la page
sinon je peux le faire en c/c++ mais je ne sais pas comment faire communiquer php avec un logiciel en c/c++
mais mon principal problème et de lancer un script sans l'afficher et en ajax le script s'arrete des que je ferme la page
Normalement, avec ajax asynchrone, le script php ne s'arrête pas avec la fermeture du browser (tant que le script n'est pas finit d'être exécuté y a pas de communications client-serveur)
tu peux utiliser ini_set('max_execution_time', 0); pour contourner la limite d'exécution.
pour communiquer avec des logiciels j'appelle un fichier .bat avec la commande exec("fichier_bat.bat parametre1 parametre2 ...)
ce fichier .bat c'est un script de commandes DOS, tes paramètres y sont sous la forme %1 %2 ... suivant l'ordre de l'appel dans exec();
tu peux utiliser ini_set('max_execution_time', 0); pour contourner la limite d'exécution.
pour communiquer avec des logiciels j'appelle un fichier .bat avec la commande exec("fichier_bat.bat parametre1 parametre2 ...)
ce fichier .bat c'est un script de commandes DOS, tes paramètres y sont sous la forme %1 %2 ... suivant l'ordre de l'appel dans exec();