lancer des batch

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


JeromeRookie
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Lun Aoû 11, 2003 10:55

lancer des batch

Message le Lun Aoû 20, 2007 6:40

Bonjour,
j'ai une page php très longue à éxécuter car elle traite un catlogue xml de +de 20.000 produits qu'elle ajoute en bdd. Lorsque je lance cette page, j'ai deux problèmes :
- toutes les ressources de mon VDS sont allouées à cette page et donc, le site est lent.
- j'ai un time out, meme en indiquant en début de script que cette page peut bénéficier d'un temps d'éxécution plus long.

y a-t-il des moyens de résoudre ces deux problèmes ?
Merci


bproductiv
WRInaute accro
WRInaute accro
 
Messages: 2807
Inscription: Lun Déc 27, 2004 16:29

Message le Lun Aoû 20, 2007 7:37

ben coupe le fichier en deux ou trois... :|


JeromeRookie
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Lun Aoû 11, 2003 10:55

Message le Lun Aoû 20, 2007 7:44

c'est ce que je fais à la main mais le fichier est mis à jour toutes les nuits et je ne me vois pas me lever toutes les nuits pour le faire ;-) a moins qu'il y ai un moyen de le couper en X automatiquement..., de récupérer les noms des fichiers et de lancer mon script x fois...


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3062
Inscription: Jeu Sep 14, 2006 4:53

Message le Lun Aoû 20, 2007 8:00

Il n'y a pas moyen d'allouer un certain pourcentage du cpu pour ton bash afin de ne pas surcharger le serveur ? J'ai juste entendu ça, je n'en suis pas sure :)


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Lun Aoû 20, 2007 8:03

et le rapport avec un batch ?


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Lun Aoû 20, 2007 8:19

tu mets une tempo toutes les 10 itérations...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Re: lancer des batch

Message le Lun Aoû 20, 2007 8:52

20 000 lignes dans le meme fichier xml !! waouuu, apres tu grognes parce que ca rame !! puis comme dit Rog, le rapport avec un batch ?
coupe ton fichier par thematique.. a oui, j'avais oublié, tu as fais toute tes lectures a partir du meme fichier XML.. tout a refaire en gros. dur dur!!
..puis la nuit, pas besoin de se lever pour des mises a jour, les taches CRONs nous aident à garder nos heures de sommeil.

bon courage


JeromeRookie
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Lun Aoû 11, 2003 10:55

Message le Lun Aoû 20, 2007 9:09

pour le batch, je me disais que il était possible de lancer le script non pas en interactif mais en batch, cad, avec moins de ressources. dsl, j'ai utilisé les mauvais mots.

a quoi sert de mettre un tempo toutes les 10 iterations ?


KOogar a écrit:coupe ton fichier par thematique..


je ne peux pas couper le fichier par thématiques car je n'en suis pas l'auteur; il s'agit d'un catalogue de e-commerçant dont je suis affilié.

KOogar a écrit:a oui, j'avais oublié, tu as fais toute tes lectures a partir du meme fichier XML.. tout a refaire en gros. dur dur!!


que veux-tu dire ????


Kaliiii
WRInaute passionné
WRInaute passionné
 
Messages: 595
Inscription: Mer Mar 02, 2005 11:33

Message le Lun Aoû 20, 2007 9:13

tu as une commande en php qui s'appelle timeout() ou tu peux donner un certain temps d'execution en secondes.

Je pense que ca peut t'aider :)


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Aoû 20, 2007 9:24

JeromeRookie a écrit:je ne peux pas couper le fichier par thématiques car je n'en suis pas l'auteur; il s'agit d'un catalogue de e-commerçant dont je suis affilié.


Le catalogue est un flux xml ??

si oui, tu dois recuperer le catalogue a partir du fichier et le monter en base sql. La tu verras qu'il y a plusieurs thematique donc tu pourras decouper le catalogue en plusieurs tables. Ensuite tu actualises tes tables la nuit par taches CRONs, si tu as bien fait plusieurs tables, les mises a jour seront tres rapide.
et pour terminer,tu te sert des tables sql pour afficher les datas aux clients.


JeromeRookie
WRInaute impliqué
WRInaute impliqué
 
Messages: 341
Inscription: Lun Aoû 11, 2003 10:55

Message le Lun Aoû 20, 2007 10:26

intéressant ta proposition.
a ce jour, je lis et traite directement chaque enregistrement du fichier xml.
je n'ai pas essayé ta proposition de le faire en deux fois :
- écrire le fichier xml en base.
- le traiter

ce serait plus rapide ?
existe-t-il une instruction pour "monter" le flux xml en bdd en une fois, ou faut-il faire une boucle ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Aoû 20, 2007 11:06

Intiutivement ? quel genre d'operation pouvons nous faire a partir d'un fichier de datas de 1 Mo ?
Afficher les datas directement a partir de ce fichier est inpensable, si nous voulons ne pas ratatiner le serveur. Nous pouvons par contre le decouper et stocker les datas dans des tables sql, ou pourquoi pas, a travers d'autres fichiers XML.
Les mises a jour seront hyper rapide, car la tache sera maintenant d'aller chercher seulement les derniers elements du fichier data.xml.
Cette methode, qui fera le bonheur de qui sait la lire, permet des fonctionnalités etonnante si le decoupage des datas est pertinant (search, datas a jour...)


julienr
WRInaute passionné
WRInaute passionné
 
Messages: 866
Inscription: Mar Aoû 05, 2003 14:49

Message le Lun Aoû 20, 2007 12:05

je ne comprends pas votre volonté de vouloir partitionner dans plusieurs tables et encore moins par thématiques
20000 lignes dans une table pour mysql c'est de la rigolade
par contre 20000 update ou insert sur un VDS normal que cela explose le CPU surtout que Mysql à besoin de beaucoup de mémoire
alors déjà pour commencer il te faut un set_time_limit(0) => plus de timeout
ensuite pourquoi pas temporiser avec sleep(1) que le moteur ne chauffe pas trop
ou alors utiliser nice pour lancer ton script en mode basse consommation (d'ordonnencement) => man nice

ensuite si c'est chaque jour que tu mets à jour le meme xml et qu'il y a très peu de différences, ca vaut le coup de détecter les changements pour minimiser les requetes inutiles...


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3324
Inscription: Mar Nov 16, 2004 18:27

Message le Lun Aoû 20, 2007 12:43

julienr a écrit:je ne comprends pas votre volonté de vouloir partitionner dans plusieurs tables et encore moins par thématiques
20000 lignes dans une table pour mysql c'est de la rigolade
par contre 20000 update ou insert sur un VDS normal que cela explose le CPU surtout que Mysql à besoin de beaucoup de mémoire
alors déjà pour commencer il te faut un set_time_limit(0) => plus de timeout
ensuite pourquoi pas temporiser avec sleep(1) que le moteur ne chauffe pas trop
ou alors utiliser nice pour lancer ton script en mode basse consommation (d'ordonnencement) => man nice

ensuite si c'est chaque jour que tu mets à jour le meme xml et qu'il y a très peu de différences, ca vaut le coup de détecter les changements pour minimiser les requetes inutiles...


En general, on fait la premiere grosse mise a jour en local si l'on n'a pas un serveur dédié perso, puis ensuite les mise a jour des derniers éléments se font en ligne.
donc pas besoin de set_time_limit().
Puis "ensuite pourquoi pas temporiser avec sleep(1) que le moteur ne chauffe pas trop" ca fait bricolage. Tu compte avoir une fenetre en permanante overte pour tes mise a jour ?
...et avoir 1 table ou 100 tables SQL, c'est un choix discutable selon les besoins de l'application.


rog
WRInaute accro
WRInaute accro
 
Messages: 1662
Inscription: Jeu Sep 21, 2006 2:32

Message le Lun Aoû 20, 2007 18:31

20000 entrées sur un fichier texte, c'est pas la mort pour php

je pense que le probleme vient du parseur xml

rog

lancer des batch

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités