Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1756 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Eviter le timeout en actualisant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Eviter le timeout en actualisant

n°1860803
vhAnton
Posté le 12-03-2009 à 16:48:11  profilanswer
 

Bonjour,
 
Je fait des requetes assez lourdes en php, qui prennent un certain temps, donc pour eviter un eventuel time out du server, je peut rafraichir ma page, en passant "l'endroit" ou j'en était (dans ma boucle) en session.
 
Le probleme est que, j'ai du code, des requetes vers ma bdd, puis une boucle asser lourde, puis de nouveau du code.
Something like that :
 
# Code  
# Code
 
@ Ma boucle tres longue
 
# Code
# Code
 
Je ne souhaite pas réefectuer mes # Code lorsque je rafraichit ma page pour alleger ma boucle.
Je ne sais pas comment me debrouiller pour actualiser ma page afin d'eviter un timeout causé par @ ma boucle, sans réexecuter mes # Code, qui font des appels a la bdd, et qui prennent un certain temps, d'un autre coté je ne peut pas tout simplement ne pas les ignorer, car je me sert des resultat dans @maboucle..
 
Je sais que c'est pas tres clair, et je m'en excuse.
 
Merci d'avance

mood
Publicité
Posté le 12-03-2009 à 16:48:11  profilanswer
 

n°1860838
grosbin
OR die;
Posté le 12-03-2009 à 17:42:21  profilanswer
 

hé bien si tu dépasses
t'as  
l'erreur 500 pour le plantage
l'erreur 503 pour server busy
 
errordocument 500 -> rafraichissement js toute les 15 sec ..


---------------
Photos Panoramiques Montagnes Haute Savoie
n°1860863
rufo
Pas me confondre avec Lycos!
Posté le 12-03-2009 à 18:06:06  profilanswer
 

et pourquoi ne pas lancer ce lourd traitement via exec("php.exe Script.php" ) ?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1860866
guybrush02
Posté le 12-03-2009 à 18:13:07  profilanswer
 

PHP n'est pas fait pour effectuer de gros calculs lourds, et si tes requêtes sont effectivement plus longues que le timeout de PHP, c'est qu'il y a un problème au niveau de ta façon de procéder. Essaye de voir ce que tu peux optimiser (tu peux éventuellement poster les requêtes concernées ou le traitement effectué).  
 
A coté de cela, dépendant de l'itération que tu fais, tu peux mémoriser via des sessions la "position" où tu es dans tes calculs, faire un reload, puis reprendre là où tu en étais. Mais à nouveau, ce n'est sans doute pas l'idéal (surtout que, si le traitement est lourd et qu'il implique une base de données, tu consommes un slot de connexion à cette BDD durant un temps relativement important).

n°1862399
vhAnton
Posté le 17-03-2009 à 10:51:17  profilanswer
 

Ducoup je me suis lancé dans l'exec(), afin d'executer les differentes parties de mon script tranquilement, et pouvoir afficher un avancement a l'utilisateur, c'est la que je me heurte a un second probleme.
 
Car mon but n'est pas d'executer le tout en tache de fond (pourquoi utiliser exec me diriez vous), mais d'executer les parties de mon script les unes a la suite des autres, et afficher des messages a l'utilisateur, de type STEP 1 : Done.
 
$commande = "/usr/local/bin/php.ORIG.5 ".getcwd()."/export_step2.php > dev/null &";
exec($commande);  
 
Mon probleme est pour recuperer qqchose de ce script step2, en mettant un tableau $output en parametre de exec, ca ne donne rien, mon tableau est vide, meme si j'ai des return dans mon step2. Apres dans step2 je fesait  
$_SESSION['done']=true;
et dans step 1
while(!isset($_SESSION['done']))
{}
echo"STEP 2 : Done";
 
Mais ca ne donne rien, je ne sais pas comment les faire "communiquer".
 
Toute aide est la bienvenue.
 
Merci

n°1862403
guybrush02
Posté le 17-03-2009 à 10:54:00  profilanswer
 

Relis ce que j'ai écris.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Eviter le timeout en actualisant

 

Sujets relatifs
Requête SQL complexe et éviter table temporaireEviter superposition background DIV
matlab timer timeout?éviter le chargement complet lorsqu'on change de page ?
[PHP ET SEO] comment éviter un duplicate content[PHP] timeout 0 dans le php.ini, quelques questions
[résolu] éviter de lister un repertoire (.htaccess)Temporiser un envois de mail (éviter de ce faire taguer en spam).
[php/mysql] Eviter un probleme dont je ne sais nommerUpload de fichier en http sur mon serveur : Pb timeout sur la réponse
Plus de sujets relatifs à : Eviter le timeout en actualisant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR