Long processus - PHP - Programmation
Marsh Posté le 27-09-2006 à 13:50:55
augmenter le temps alloué à ton processus...
Tu as un chien de garde pour les processus php.. ainsi tu peux définir dans php.ini, un temps max de processus : max_execution_time = ....
en secondes
Si tu mets à 0, le processus n'as pas de limite, mais bon s'pa top en cas de boucle infinie etc..
Marsh Posté le 27-09-2006 à 13:53:41
oki doki...Merci pour l'info...
Mais c'est la seule solution?
Il y a pas un moyen de lui dire, ceci est un prosessus propre qui bugue pas.
Marsh Posté le 27-09-2006 à 13:59:18
si, en fait dans le script qui prend du temps, tu peux dire set_time_limit(...); afin d'augmenter le temps d'exécution potentiel. Attention toute fois, chaque appel remet à zéro le compteur de temps et repart pour de nouveau la nouvel limite.
Marsh Posté le 27-09-2006 à 14:07:14
Le problème est que sur une grande partie des serveurs mutualisés tu n'as pas le droit de le faire ... J'ai eu recemment le problème avec un site sur lequel on doit pouvoir uploader des zip d'une 10ene de Mo, puis les deziper
Marsh Posté le 27-09-2006 à 14:16:23
trois solutions :
Marsh Posté le 27-09-2006 à 14:17:25
xtof >> j'ai été confronté au problème, à l'époque j'avais contourné le problème de cette manière :
- stockage en session d'un tableau contenant les chemins d'accès aux photos à traiter
- redirection vers un script qui teste s'il y a des photos à traiter ; si c'est le cas le script effectue le traitement pour disons une quinzaine de photos en les supprimant du tableau au fur et à mesure, puis redirige vers lui-même. S'il n'y a pas (plus) de photos à traiter le script redirige vers un autre script.
Je sais pas si je suis très clair...
Marsh Posté le 27-09-2006 à 14:24:46
Oki jai compris...
Car le truc c'est que là je suis sous free donc set_time_limit on oubli et php.ini je pense pas avoir accés
j_lecruel>> pas de souci j'ai compris.
j'avais eu un peu une idée similaire. Mais je voulais etre sur qu'il n'y avait pas de soluce facile à côté
Je vais donc exploirer cette voie
merci les gars.
Marsh Posté le 02-10-2006 à 10:03:29
Bonjour, mon script en presque fini, juste un souci ergonomique.
Je souhaite quand meme indiquer à lutilisateur d'ou en est le chargement, un truc simple style:
Photo 3 in progress... 2 restantes ....
Puis
Photo 4 in progress... 1 restante ....
Mais si je mamuse a afficher des données, mon petit header location en PHP, va tirer la gueule.
Sinon je peux faire une page vide, le chargement tourne, je recharge ma page sur une page avec un tag html de reload en 1-2 sec avec le message...
Mais ça fait vite beaucoup de rechargement.
Si vous avez une soluce, Merci
Marsh Posté le 02-10-2006 à 10:58:12
Tu fais le contraire sinon, t'affiches les photos que tu vas traiter à la fin:
header()
echo Après redirection, 186 photos restantes à traiter
Marsh Posté le 02-10-2006 à 11:59:06
Mais un header() ne marche que si il n'y a rien ecrit avant lui...
Donc aprés mon echo, je fais quoi ?
Marsh Posté le 02-10-2006 à 12:39:36
Ben tu fais un refresh en laissant 2 ou 3 secondes d'affichage ce qui laisse le temps de voir le message avant que ça change de page
Marsh Posté le 02-10-2006 à 19:38:04
xtof_83 a écrit : oki doki...Merci pour l'info... |
Tu peux éxecuter ton script Php sous forme de daemon.
Marsh Posté le 02-10-2006 à 20:54:57
gooopil>> okay ça rejoint mon idée de départ, qui fait au final beaucoup de rafraichisement...Merci
supermofo>> oki je vais m'interesser sur ça. (Meme si je pense pas que je peu faire ça sur mon type de serveur)
Marsh Posté le 02-10-2006 à 22:25:29
xtof_83 a écrit : gooopil>> okay ça rejoint mon idée de départ, qui fait au final beaucoup de rafraichisement...Merci |
Sinon un peu d'"ajax" pour faire bouger ta barre d'avancement et son texte
Marsh Posté le 27-09-2006 à 13:41:42
Bonjour,
Une petite question qui m'a parfois titillé, mais que j'ai pu toujours laisser de côté.
Dans un petit programme, quand on lance une boucle qui par exemple :
redimensionnement des images (1.5mo max), et fait quelques modifications
Si je fait une boucle sur de nombreuses photos, le navigateur me met une erreur comme quoi il y a un dépassement de temps pour le processus.
C'est quoi la solution propre pour résoudre ce souci.
Merci