Rechercher : dans
Par :

Exécuter un script php en parallèle

Dernière réponse le 2 jun 2009 à 18:52:24 Atropa, le 19 mai 2009 à 23:06:59 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « Exécuter un script php en parallèle » dans :
Implantation du code Php VoirL'interprétation du code par le serveur Un script PHP est un simple fichier texte contenant des instructions écrites à l'aide de caractères ASCII 7 bits (des caractères non accentués) incluses dans un code HTML à l'aide de balises spéciales et...

1

pyschopathe, le 20 mai 2009 à 13:18:38

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.

Répondre à pyschopathe

2

Atropa, le 25 mai 2009 à 03:49:53

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 :

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);


Répondre à Atropa

3

pyschopathe, le 25 mai 2009 à 09:44:21

Tu as la main sur ton serveur ? Parce que php limite la durée d'exécution d'un script, ça risque de poser problème si tu veux faire une sorte de daemon...

Tu ne peux pas le faire en un autre langage, utiliser des tâche cron ou quelque chose du genre ?

Répondre à pyschopathe

4

 Atropa, le 2 jun 2009 à 18:52:24

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

Répondre à Atropa
Collection CommentÇaMarche.net