[PHP] détecter le depassement du temps max d'execution de script

détecter le depassement du temps max d'execution de script [PHP] - PHP - Programmation

Marsh Posté le 14-02-2003 à 15:28:59    

Bonjour :)
 
j'ai un souci a regler rapidement en attendant de pouvoir corriger le probleme.
 
resume de la situation :
 
j'affiche via un script PHP un listing d'infos a recuperer depuis une table SQL Server plutot lourde (plusieurs centaines de milliers d'enregistrement)
 
j'ai defini le temps d'exec max des scipts PHP a 120 secondes
 
j'affiche une <div> avec un gif anime pendant le chargement des infos
 
probleme :
 
malgre un temps max de 120sec, il arrive que le script ne se soit pas acheve dans les temps et php l'arrette donc automatiquement ... mais du coup, mon <div> reste affiche (j'ai un code JS en fin de page qui le desaffiche mais vu que PHP arrette le script, le code n'en est pas encore la ...) ...
 
est-il possible de faire en sorte que si mon script est arrette de cette maniere j'arrive a faire que du JS soit creer pour desafficher ma <div> ?
 
j'espere avoir reussi a vous faire comprendre mon probleme.
 
merci d'avance de votre aide :jap:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 15:28:59   

Reply

Marsh Posté le 14-02-2003 à 15:36:54    


Non, js = client, php = serveur, quand ton script est trashé il est trop tard pour afficher un message vu que ton script est trashé justement.
 
Par contre tu peux ne modifier ton temps limite que pour ce script www.php.net/set_time_limit
 


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-02-2003 à 15:56:29    

oui, je sais pour les aspects client/serveur ...
 
seulement j'esperais que PHP pourrait gerer cela et lui dire que lorsqu'un script atteind la limite temporelle d'execution, qu'il ne stop que la fonction incriminee et qu'il passe a utre chose ...
 
je sais pas mais ca me parait possible non :??:
 


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 16:00:48    


Je viens de le dire, je vais faire plus clair:
 
Non
 
 :D


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-02-2003 à 16:02:54    

bah oui mais non ! ;)  
 
enfin, ca doit surement s'expliquer pour un codeur specialiste mais je suis limite decu ... :pfff:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 16:08:52    


Attends, faut se réveiller, le language il est pas concu pour toi uniquement et de limiter l'exécution d'une fonction ca implique une chiée de trucs (comment tu vas définir le temps max hein?) de plus cette mesure est uniquement faire pour balancer les scripts trop couteux sur des hébergements mutualisés ou pour trouver un script qui foire.
 
Et franchement un scrip qui dure + de 120 secondes faut se poser de sérieuses questions avant d'attaquer PHP  :heink:


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-02-2003 à 16:21:13    

clair que deux minutes pour une requete sql, mais que fait la police ??
 
il manque surement un/des index ou ton serveur est un dinosaure??

Reply

Marsh Posté le 14-02-2003 à 16:34:33    

Batman-Fr a écrit :

bah oui mais non ! ;)  
 
enfin, ca doit surement s'expliquer pour un codeur specialiste mais je suis limite decu ... :pfff:  


 
 :o pas d'animosite svp ! :heink:  
 
c'etait juste histoire de finir sur une bonne note (bon j'ai foire) et de bien vous montrer que je n'etais pas specialiste et que je croyais fermement que c'etait possible
 
 :sweat:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 16:35:25    

apolon34 a écrit :

clair que deux minutes pour une requete sql, mais que fait la police ??
 
il manque surement un/des index ou ton serveur est un dinosaure??


 
j'en ai conscience :sweat:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 16:37:10    


Au boulot alors  [:banzai]


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-02-2003 à 16:37:10   

Reply

Marsh Posté le 14-02-2003 à 16:47:01    

alors il me faut m'expliquer l'optimisation des requetes SQL et des tables SQL (j'ai un index sur les champs importants de mes tables) :(


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 16:53:44    

fait un explain sur tes requetes, dans phpmyadmin, et etudie le resultat

Reply

Marsh Posté le 14-02-2003 à 16:57:10    

je ne passe pas par phpmyadmin
 
scripts PHP qui interrogent une base sql server via odbc
 
est-ce plus rapide de passer par une procedure stockee par rapport a entrer sa requete dans le script PHP ?
 
on derive vers un topic d'optimisation sql/php la ...


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 14-02-2003 à 17:12:58    

Batman-Fr a écrit :


 
on derive vers un topic d'optimisation sql/php la ...  


 
ben tu veux résoudre ton pb comment ? :heink:

Reply

Marsh Posté le 14-02-2003 à 17:16:43    


SkyLight>Je propose l'imposition des mains mais j'ai un doute sur l'éfficacité  :sweat:  
 
Batman>Si ton script est pas trop gros, copie le ici, sinon juste les requêtes ou des petits bouts


---------------
Informaticien.be - Lancez des défis à vos amis
Reply

Marsh Posté le 14-02-2003 à 21:00:07    

Skylight a écrit :


 
ben tu veux résoudre ton pb comment ? :heink:


 
attends, ca ne me derange pas !  
j'hesitais simplement a poser la question "on continue ds ce topic et je modifie le titre" ou "je cree un nouveau topic" et "pers n'a deja propose un tel topic ?" ... enfin tu voix, toutes les questions de bienseances HFRiennes  :o  
 
pr le script, oui, je posterai des bouts de code lundi
 
merci a vous deja et bon week end en attendant :jap:  
 
 :hello:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 15-02-2003 à 16:58:29    

Salut
 
A propos de tps d'éxécution, je souhaiterais mettre en bas de page un :
"page générée en 0.15sec" : je fais comment ?
 
Un pote en ASP catch l'heure ds son 1er include en haut de page puis rebelotte en bas de page. Il fait la différence et hop :)
 
Problème, il fait appel à une fction "timer" et je connais pas l'équivalent en PHP.
 
merci
 
a+

Reply

Marsh Posté le 15-02-2003 à 23:02:02    

kileak2 a écrit :

Salut
 
A propos de tps d'éxécution, je souhaiterais mettre en bas de page un :
"page générée en 0.15sec" : je fais comment ?
 
Un pote en ASP catch l'heure ds son 1er include en haut de page puis rebelotte en bas de page. Il fait la différence et hop :)
 
Problème, il fait appel à une fction "timer" et je connais pas l'équivalent en PHP.
 
merci
 
a+


 

Code :
  1. function getmicrotime(){
  2.     list($usec, $sec) = explode(" ",microtime());
  3.     return ((float)$usec + (float)$sec);
  4.     }
  5. $time_start = getmicrotime();
  6.    
  7. for ($i=0; $i < 1000; $i++){
  8.     //do nothing, 1000 times
  9.     }
  10. $time_end = getmicrotime();
  11. $time = $time_end - $time_start;
  12. echo "Did nothing in $time seconds";


 
source: http://be.php.net/manual/en/function.microtime.php

Reply

Marsh Posté le 16-02-2003 à 10:28:27    

dropsy a écrit :


 

Code :
  1. function getmicrotime(){
  2.     list($usec, $sec) = explode(" ",microtime());
  3.     return ((float)$usec + (float)$sec);
  4.     }
  5. $time_start = getmicrotime();
  6.    
  7. for ($i=0; $i < 1000; $i++){
  8.     //do nothing, 1000 times
  9.     }
  10. $time_end = getmicrotime();
  11. $time = $time_end - $time_start;
  12. echo "Did nothing in $time seconds";


 
source: http://be.php.net/manual/en/function.microtime.php


 
thx  :jap:  
a+

Reply

Marsh Posté le 05-03-2003 à 09:54:55    

Batman-Fr a écrit :


 
attends, ca ne me derange pas !  
j'hesitais simplement a poser la question "on continue ds ce topic et je modifie le titre" ou "je cree un nouveau topic" et "pers n'a deja propose un tel topic ?" ... enfin tu voix, toutes les questions de bienseances HFRiennes  :o  
 
pr le script, oui, je posterai des bouts de code lundi
 
merci a vous deja et bon week end en attendant :jap:  
 
 :hello:  


 
 :hello:  
 
j'ai finalement réglé mon problème : il y avait bcp trop d'index créés sur ma table ... mon script était donc OK, il s'execute en 0.5 seconde en moyenne
 
merci a vous :jap:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed