Formation Google AnalyticsSavez-vous bien utiliser les outils de mesure d'audience ?
Effectuez-vous un calcul de ROI (Retour sur investissement) pour savoir comment améliorer vos campagnes emarketing ?
Savez-vous utiliser les bons outils pour booster votre taux de transformation ?
La formation Web Analytics de Ranking Metrics, présentée par un expert reconnu officiellement par Google Analytics, vous apportera les réponses à toutes vos questions !
===> Informations et inscriptions.

time-out en php

Aller à la page 1, 2  Suivante
Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 10:06    Sujet du message: time-out en php

Bonjour,
j'ai un script php qui dure très longtemps car il traite plus de 40.000 lignes d'un fichier XML et intègre dans mysql des produits (tout en redimensionnant des images).
il tourne donc plus de 30s.
j'ai ce message d'erreur :

Fatal error: Maximum execution time of 30 seconds exceeded in ...

j'ai essayé set_time_limit(0); mais je n'ai pas accès à cette fonction en safe-mode.

j'ai également essayé ini_set('max_execution_time',100); mais cela semble ne rien y faire car la limite reste à 30s....


quelqu'un a-t-il une idée ?
Merci
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:11    Sujet du message: time-out en php

Dans le fichier php.ini, tu as une ligne :
max_execution_time = 30

Par contre, si tu es en mutualisé, je pense pas (et même j'espère) que tu ne peux pas changer ce parametre.
 
arnaudmn Visiter le site web du posteur
applebuelos
Nouveau WRInaute

Inscrit le: 15 Aoû 2006
Messages: 1

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:18    Sujet du message: time-out en php

ou au debut de ton fichier .php :

tu ecris : set_time_limite('duree de l execution de ton script en secondes');
 
applebuelos
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:23    Sujet du message: time-out en php

applebuelos a écrit:
ou au debut de ton fichier .php :

tu ecris : set_time_limite('duree de l execution de ton script en secondes');


comme je le disais dans mon post précédent, j'obtiens un message d'erreur lorsque je fais cela me disant que je ne peut pas modifier ce paramètre en safe-mode...
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:27    Sujet du message: time-out en php

JeromeRookie a écrit:

comme je le disais dans mon post précédent, j'obtiens un message d'erreur lorsque je fais cela me disant que je ne peut pas modifier ce paramètre en safe-mode...


Voir les explications dans http://www.php.net/set_time_limit :
"Notez que set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini."
 
arnaudmn Visiter le site web du posteur
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:33    Sujet du message: time-out en php

j'ai accès à mon root et essaie de modifier mon fichier php.ini.
j'ai deux fichiers php.ini, l'un dans etc/php5/cli/, l'autre dans etc/php5/apache/

savez vous lequel doit etre modifié ?
j'ai modifié les deux avec une fois max_execution_time=35 et une autre fois max_execution_time=40, afin de le savoir mais lorsque je relance mon script, j'ai toutjours un time-out après 30s????

faut-il redémarrer le serveur apache pour que cette modif soit prise en compte ?
si oui comment faire ?
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:43    Sujet du message: time-out en php

Voir http://php.developpez.com/faq/?page=ini (j'ai bien le droit de faire un lien ?)

Pour redémarrer apache : /etc/init.d/apache restart
 
arnaudmn Visiter le site web du posteur
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 13:56    Sujet du message: time-out en php

merci pour ces explications.
j'ai donc pu isoler mon fichier php.ini et tester les deux pistes pour résoudre mon problème :

piste 1 : set_time_limit(0);
cette commande donne une erreur (Warning: set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in...) alors que j'ai safe_mode = Off dans mon php.ini

Piste 2 : modifier max_execution_time = 200 dans php.ini
j'ai toujours l'erreur Fatal error: Maximum execution time of 30 seconds exceeded in ...
ce qui est étonnant, c'est que l'erreur affiche toujours 30s ...
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 14:08    Sujet du message: time-out en php

En utilisant phpinfo() en php, ça doit te dire plein de chose : si tu es ou n'est pas en safe mode, la valeur de max_execution_time, l'emplacement du fichier ini, .... A vérifier pour voir s'il prend bien en compte ton fichier.
Il me semble pas qu'il faut faire autre chose que mettre safe mode à Off pour le désactiver .... mais j'y ai jamais touché. Idem pour la durée d'execution : c'est quand même une sécurité d'avoir une limitation du temps, donc je laisse Smile
Quand j'ai des scripts de plus de 30 secondes, je les coupes en morceau ; tu dois pouvoir le faire en comptant le temps au fur et a mesure du traitement de ton fichier, et quand tu vas atteindre les 30 secondes, tu mémorise ou tu en ai ... et tu recommence.
 
arnaudmn Visiter le site web du posteur
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 14:12    Sujet du message: time-out en php

là, il faudrait vraiment que je le coupe en 100 car il y en a pour 30minutes environ ...

j'ai refais un phpinfo et je trouve que le safe_mode est à On pour la local value et à Off pour la master value
 
JeromeRookie Visiter le site web du posteur
cthierry
WRInaute accro
WRInaute accro

Inscrit le: 15 Jan 2005
Messages: 1765
Localisation: seine et marne

URL permanente de ce messagePosté le : Dim Nov 18, 2007 14:14    Sujet du message: time-out en php

+ 1 avec arnaudmn

Pourquoi ne pas tout simplement decouper ton script php en plusieurs étapes.
C'est ce que je fais pour récupérer des gros flux et les mettres en bdd. Cela évite ce genre de problème.

Mais bon c'est juste un avis.
 
cthierry Visiter le site web du posteur
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 14:17    Sujet du message: time-out en php

votre avis m'intéresse mais je ne vois pas un moyen simple de le faire. j'intègre un catalogue xml d'une plateforme d'affiliation. ce catlogue est énorme il faudrait que je le découpe en 50...

faire cela à la main me parait un peu laborieux... mais peut-etre me manque-t-il des compétences...
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 14:50    Sujet du message: time-out en php

JeromeRookie a écrit:
votre avis m'intéresse mais je ne vois pas un moyen simple de le faire. j'intègre un catalogue xml d'une plateforme d'affiliation. ce catlogue est énorme il faudrait que je le découpe en 50...

faire cela à la main me parait un peu laborieux...


On ne parle pas de le faire a la main Smile Suffit de traiter ton fichier comme tu le fais aujourd'hui, mais en regardant le temps écoulé. Quand tu vas atteindre 30 secondes, tu recharges ta page avec un paramétre qui t'indique ou tu en es (simplement la position dans le fichier, avec ftell() ), et tu recommences depuis cette position.
En générant du javascript ou l'entete Refresh par exemple quand la limite des 30 secondes va être atteinte ... ou en mettant un lien pour continuer le traitement.
 
arnaudmn Visiter le site web du posteur
JeromeRookie
WRInaute impliqué
WRInaute impliqué

Inscrit le: 11 Aoû 2003
Messages: 333

URL permanente de ce messagePosté le : Dim Nov 18, 2007 15:20    Sujet du message: time-out en php

oulah... là ca dépasse mes compétences... j'ai bien compris le principe que tu expliques.
je sais mesurer le temps et enclencher une action dès que les 25s sont dépassées mais je ne sais pas :
- utiliser ftell
- rappeler la meme page sans qu'il y ait un clic
- commencer dans le fichier xml là ou je m'étais arreté...

as-tu par hasard un exemple de fichier ?
 
JeromeRookie Visiter le site web du posteur
arnaudmn
WRInaute accro
WRInaute accro

Inscrit le: 11 Mai 2005
Messages: 1432

URL permanente de ce messagePosté le : Dim Nov 18, 2007 15:28    Sujet du message: time-out en php

JeromeRookie a écrit:
oulah... là ca dépasse mes compétences... j'ai bien compris le principe que tu expliques.
je sais mesurer le temps et enclencher une action dès que les 25s sont dépassées mais je ne sais pas :
- utiliser ftell


http://www.manuelphp.com/php/function.ftell.php Smile

JeromeRookie a écrit:
- rappeler la meme page sans qu'il y ait un clic


Quand tu atteind 25 secondes, tu fais ça :
$iPositionDansLeFichier = ftell($tonfichier);
$url='http://mondomaine.com/';
header("Refresh: 1;url=http://tondomaine/tapage?position=".$iPositionDansLeFichier);

JeromeRookie a écrit:
- commencer dans le fichier xml là ou je m'étais arreté...


Juste après avoir ouvert ton fichier (avec fopen ?), tu te positionnes avec fseek($tonfichier, $HTTP_GET_VARS["position"])

Maintenant, je sens que tu vas me dire que tu utilises un script tout fait pour traiter ton fichier xml ... Cool
 
arnaudmn Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 2 - Aller à la page 1, 2  Suivante
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort