Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/06/2011, 16h12   #1
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
Par défaut Délai d'éxécution d'un script

Bsr à tous

Avant de pouvoir afficher le résultat d'un script A, j'aimerais d'abord exécuter un script B qui se terminera selon un temps donné et à la suite du script A le script B s'éxécute.

En gros comment exécuter un script juste après le delai imparti du premier scirpt.

Merci de m'éclairer
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h06   #2
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Salut,

Un script est linéaire : un point d'entrée, un point de sortie.
Tu ne peux pas forcer l'arrêt d'un script en cours d'exécution autrement qu'en passant par un contrôle interne dans le code même du script qui le terminerait selon un critère particulier.
En gros, il te faut dans ton script B un truc du genre :
Code :
1
2
3
if (test()) {
   return scriptA();
}
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h27   #3
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
en faite je veux le premier script s'arrête après 10 seconde dc un truc du genre :
Code :
if(temps_script1==10) alors afiche script 2
le but c'est de retarder l'affichage du script 2 et pendant ce laps de temps le script 1 tourne en boucle (exemple : affichage des nom d'une table de plusieurs clients).
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h38   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
un truc du genre devrait te convenir :
Code :
1
2
3
4
5
6
7
$start = microtime(TRUE);
sleep(10); # code à exécuter durant le lap de temps
$current = microtime(TRUE);
 
if (($current - $start) > 10) {
   echo 'délai écolué';
}
Mais je me demande si tu n'es pas en train de partir en galère avec tes scripts qui doivent s'enchainer non pas en fonction de leur résultat mais d'un temps écoulé.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 18h56   #5
Membre du Club
 
Inscription : novembre 2005
Messages : 321
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 321
Points : 57
Points : 57
Envoyer un message via MSN à Interface Envoyer un message via Yahoo à Interface
Surement un code se genre là.
Mais comment exécuter un code pendant ce sleep(10)? Genre afficher un texte?
Interface est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/06/2011, 19h07   #6
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
houla,

le sleep(10) ne sert que d'exemple, quand le serveur pionce comme ici 10 seconde, il ne fait rien d'autre. Un peu comme nous, quand on dort, on dort, le reste n'existe pas. Ce sleep(10) est à remplacer par ton propre code. Ce qui est important c'est le microtime().

Et puis je pense qu'il va te falloir exécuter ton code dans un boucle du genre :
Code :
1
2
3
4
5
6
7
8
9
10
$limit = microtime(TRUE) + 10; # temps courant + 10 secondes
 
while ($current < $limit) {
   # code a exécuter pendant la durée impartie
   #
   #
   $current = microtime(TRUE);
}
 
scriptA();
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/06/2011, 09h46   #7
Membre Expert
 
Avatar de transgohan
 
Homme Baptiste ROUSSEL
Étudiant
Inscription : janvier 2011
Messages : 802
Détails du profil
Informations personnelles :
Nom : Homme Baptiste ROUSSEL
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2011
Messages : 802
Points : 1 515
Points : 1 515
Regardes du côté de la gestion des processus : http://fr.php.net/manual/fr/ref.pcntl.php
Tu as de quoi envoyer des signaux entre deux processus PHP et donc de pouvoir faire patienter un script tant que l'autre n'est pas terminé.
__________________
Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur.
transgohan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h14.


 
 
 
 
Partenaires

Hébergement Web