Aller au contenu

grosse boucle qui se heurte au timeout


Sujets conseillés

Posté

Bonjour,

J'ai un gros script qui génère 2 images avec GD à partir d'un dossier de photos (qui peut aller jusqu'à + de 1000 photos).

J'ai donc fait une boucle WHILE qui :

- prend l'image du repertoire,

- genere les 2 vignettes

- supprime l'image source

... jusqu'à ce que le repertoire soit vide.

Je suis donc confronté au timeout de php, mais surtout je voudrais éviter de toucher au "set_time_limit" d'autant plus que cela sera hébergé sur du mutualisé et non mes serveurs.

j'ai essayé d'interrompre la boucle pour rafraichir la page, mais cela génère du bug. (ca ne marche pas sur IE par exemple)

j'ai essayé des sources en ajax trouvées sur le net pour contourner le timeout, mais j'ai pas réussi à les faire tourner.

je me demande si j'ai choisi la bonne méthode pour ce genre d'application

qu'en pensez-vous sachant que je suis pas expert en php et nul en javascript ?

merci

arno

Posté

Bonjour,

Le fait de rafraichir la page est une bonne solution. Par exemple, si tu fais un : while ($i <=100), étant donné que c'est du php, cela fonctionnera sous IE, FF et autre.

Je pense que tu devrais reprendre cette solution.

Bye

Portekoi

Posté

SI les 1000 photos ne doivent pas forcément être fait en même temps, tu peux lancer une tâche cron toutes les heures par exemple pour traiter 100 photos (plus ou moins en fonction de tes impératifs). Le script ne devant pas, évidement, reprendre les photos qui ont déjà été traitées.

Après, tout dépend de la quantité de photos qui arrivent en même temps. A moins que ce nombre ne soit définitif ?!

A chaque problème une solution...

Posté

Si ton rechargement de page ne fonctionne pas, c'est peut-être que tu envoies de mauvaises en-têtes.

Quel code utilises-tu ?

Sinon, il faut également savoir que, par défaut, firefox est limité à 20 redirections maximum, et que si tu utilises une tâche cron avec wget, tu es limité à 20 redirections également, sans possibilité de le modifier.

Posté

merci pour vos reponses.

pour le rafraichissement, j'utilise "<meta http-equiv="refresh" content="5; url=#" />"

Le cron ne sera pas adapté, tout doit être fait en 1 fois et commandé par un homme.

je continue à regarder le rafraichissement.

Posté (modifié)

S'lut !

J'utilise la meta refresh en passant dans la nouvelle url le paramètre de l'image suivante :

CODE
<META http-equiv="Refresh" content="4; URL=nouvelle url appelant la même page avec ID de l'image suivante">

Edit : moderateurs, désolé je n'arrive pas à faire une codebox plus petite !

Modifié par deskiller
Posté

Bonjour et merci !

je teste ça dès cet apres-midi, j'ai pas le code sous les yeux.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...