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

  FORUM HardWare.fr
  Programmation
  PHP

  Long processus

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Long processus

n°1448155
xtof_83
Freeride Spirit
Posté le 27-09-2006 à 13:41:42  profilanswer
 

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

mood
Publicité
Posté le 27-09-2006 à 13:41:42  profilanswer
 

n°1448163
chani_t
From Dune
Posté le 27-09-2006 à 13:50:55  profilanswer
 

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..

n°1448166
xtof_83
Freeride Spirit
Posté le 27-09-2006 à 13:53:41  profilanswer
 

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.

n°1448167
chani_t
From Dune
Posté le 27-09-2006 à 13:59:18  profilanswer
 

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.
 

n°1448173
esox_ch
Posté le 27-09-2006 à 14:07:14  profilanswer
 

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 :/


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1448185
omega2
Posté le 27-09-2006 à 14:16:23  profilanswer
 

trois solutions :

  • max_execution_time dans le php.ini
  • set_time_limit dans le script
  • découpage de l'exécution en plusieurs parties avec passage d'une partie à l'autre par raffraichissement de la page dans le navigateur.

n°1448187
j_lecruel
☀ ☁ ☂
Posté le 27-09-2006 à 14:17:25  profilanswer
 

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...


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
n°1448193
xtof_83
Freeride Spirit
Posté le 27-09-2006 à 14:24:46  profilanswer
 

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é :D
Je vais donc exploirer cette voie ;)
 
merci les gars.

n°1450631
xtof_83
Freeride Spirit
Posté le 02-10-2006 à 10:03:29  profilanswer
 

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

n°1450666
gooopil
pfiew
Posté le 02-10-2006 à 10:58:12  profilanswer
 

Tu fais le contraire sinon, t'affiches les photos que tu vas traiter à la fin:
header()
echo Après redirection, 186 photos restantes à traiter

mood
Publicité
Posté le 02-10-2006 à 10:58:12  profilanswer
 

n°1450714
xtof_83
Freeride Spirit
Posté le 02-10-2006 à 11:59:06  profilanswer
 

Mais un header() ne marche que si il n'y a rien ecrit avant lui...
 
Donc aprés mon echo, je fais quoi ?

n°1450729
gooopil
pfiew
Posté le 02-10-2006 à 12:39:36  profilanswer
 

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

n°1451050
supermofo
Hello World !
Posté le 02-10-2006 à 19:38:04  profilanswer
 

xtof_83 a écrit :

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.


 
 
Tu peux éxecuter ton script Php sous forme de daemon.

n°1451072
xtof_83
Freeride Spirit
Posté le 02-10-2006 à 20:54:57  profilanswer
 

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)

Message cité 1 fois
Message édité par xtof_83 le 02-10-2006 à 20:57:32
n°1451095
leflos5
On est ou on est pas :)
Posté le 02-10-2006 à 22:25:29  profilanswer
 

xtof_83 a écrit :

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)


Sinon un peu d'"ajax" pour faire bouger ta barre d'avancement et son texte :)


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

  Long processus

 

Sujets relatifs
rassembler "long" et "char" pour débutantDécouper un résultat de requète sql trop long
[C#] conversion int/long/et autres vers byte[ ]Couper la connexion d'un POST trop long
Processus à killer par wm_closeComment savoir quel processus utilise tel fichier ?
Processus de développement qui marchent (ou pas)[c#] [1.1] WIM et Processus
double vs long double[SQL2000] processus sqlservr.exe utilise beaucoup de mémoire
Plus de sujets relatifs à : Long processus


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)