|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() |
Bonjour,
dans le cadre d'un projet perso, je pense que je serais confronté à un légers problème de temps de traitement et je n'ai hélas pas d'idée pour le résoudre. Tout d'abord le contexte : J'ai créé un album photo web de ma fille, à destination de ma famille (géré par php web gallerie). Le probleme : Pour facilliter l'organisation, il à été décidé que les photos seraient organisées par années / mois / jours : http://www.aurianne-pastre.fr/ Mais devant la prolifération des photos, le temps pris par mon boulot, j'ai de moins en moins de temps pour faire cette organisation. Surtout que j'attend une 2eme fille pour dans 5 mois. J'ai donc eut l'idée de faire un bout de code qui lit les infos EXIFS des photos que j'airais préalablement uploadées par FTP, et les déplace dans les repertoires qui conviennent (et crée ceux qui n'existe éventuelement pas encore) automatiquement à partir des dates de prises de vues. De plus il créera éventuelement les miniatures adéquates. Le gros problème : J'upload souvent les photos par grande quantitées car je ne m'astreint pas à le faire tout les jours. Hélas ou heureusement (sécurité oblige) je pense que les traitements seront trop long suite au max execution time... Certe j'ai le controle sur ces parametres mais je ne trouve pas sécurisant pour le serveur de les augmenter de façon trop élevée. Je cherche donc un moyen des les traiter par lots, mais je n'ai aucune idée de comment y parvenir. Voici un bout de mon code (miniatures pas encore codées), en esperant que vous aurez quelques idées à me soumetre : Code :
Cordialement. |
||
|
|
00
|
|
|
#2 | ||
|
Membre chevronné
![]() Inscription : juin 2005 Messages : 572 ![]() |
Une méthode un peu bidouille mais qui fonctionne consiste à intégrer un compteur dans ta boucle de lecture du répertoire, puis lorsque tu as effectué un certain nombre de traitements réappeler la page :
Code :
__________________
Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ? Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée" |
||
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() |
pas bète, je n'avais pas pensé à cela, surtout que vu que les fichiers sont déplacé il peut reprendre à 0 la liste de fichier étant nouvelle (les 100 premiers déplacés, il prend les 100 suivants.
Je vais tacher de metre ça en place et de faire des test le perf, le but étant de ne pas coucher le serveur durant ces opérations. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
Bon petit probleme : ça tourne en boucle à l'infini.
Normal je pense car on sors du while si plus de fichiers ou si compteur lot >5 Et on redirige auto vers la par de traitement dans un cas comme dans l'autre, il me faut donc faire un test de condition avant la redirection, je vais tacher d'étudier le probleme. De plus, je me demande si je ne devrait pas metre un sleep dans ma boucle de traitement, histoire de ne pas trop charger le serveur à chaque lot. qu'en pensez vous ? |
|
|
00
|
|
|
#5 | ||
|
Membre du Club
![]() |
Bon la bonne nouvelle c'est que ça marche :
Traitement de lot de 5 images avec copies et création de miniatures (toujours nommées en fonction de la date de prise de vue obtenue à partir des infos EXIF). Mais, car il y a bien sur un mais : comme je le craignais, durant le traitement de 80 images en 640*480 (sachant que la résolution en prod sera de 800*600 ou 1024/768 et que je traiterais des lots de 300 à 500 photos), je sature le CPU (P4 3ghz) du serveur à plus de 80%. Ce qui n'est hélas pas viable pour les autre sites que j'héberge dessus. A votre avis un petit sleep dans la boucle aiderait il à faire baisser ce taux d'occupation CPU ? Ou avez vous une autre idée pour limiter la consomation de ressources ? Pour info voila mon code : Code :
|
||
|
|
00
|
|
|
#6 | ||
|
Membre du Club
![]() |
Bon après pas mal de déboires non dut au script (le soft que j'utilisais pour automatiser la réduction des photos envoie envoie par ftp avait tendance à perdre certaines infos exif), cette version du script marche :
Compter 16 mins pour le traitement de 2000 photos à 60% d'utilisation CPU Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com