Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/08/2006, 21h07   #1
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
Par défaut [Conception] Meilleur methode pour une opération lourde ?

Salut a tous,

en fait j'ai besoin de vos conseil. Je suis en train de faire un comparateur de prix. Pour ce faire je lis un fichier .csv qui contient toutes les données sur les produits distribuées pas le sites marchands.

SUr mon site, dans ma base de donnée j'ai une table par site marchand (pour éviter d'aller lire a chaque fois dans le csv).

Donc il faut que je la mettent a jours de temps à autreS.

Pour ce faire j'avais pensé à faire un bouton "recharger" qui remettrais a jours la base de donné.
Le problème c'est que c'est une opération très lourdes. (juste le fait d'extraire les données ca fait ramer mon pc avec WAMP).

Donc qu'elle methode me conseiller vous?

En fait j'avais penser à mettre un petit timer entre chaque requette (donc une requette par produit).

Le script mettra plus de temps a s'executer mais consommera moin de ressource en faisant ca non?

Que me conseillerez vous? (ne me dite pas de prendre plusieurs serveurs dédié ^^).

Arf, de toute facon je viens de réessayer mon script et il me renvoie l'erreur:

Fatal error: Maximum execution time of 30 seconds exceeded in D:\wamp\www\manganimesV3.0\lectcsv.php on line 88

Donc avec les timers ca sera encore pire.
Comment puis-je m'y prendre?

Bon je me suis débrouiller et j'ai bidouiller un truc qui marche avec des rafraichissement.

(je met la valeur du compteur de la boucle dans l'url et je continue la boucle ou elle en était).

Pour ce qui est des ressources serveurs. J'ai 2 possibilitée:

1 - laisser se faire la boucle le plus rapidement possible.
2 - Mettre un sleep cour (genre 0.1 sec) a chaque itération.

A votre avis quelle est la meilleur solution pour les ressources? Finir le script le plus rapidement possible (il prend plus d'une minute à s'executer), ou allonger temps d'execution en rendant la tache plus légère avec des pauses?
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 23h45   #2
Rédacteur
 
Avatar de Yoshio
 
Homme
Inscription : septembre 2005
Messages : 1 741
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 24
Localisation : Belgique

Informations forums :
Inscription : septembre 2005
Messages : 1 741
Points : 1 497
Points : 1 497
Tu devrais vraiment éviter les multi post ...

J'ai une question : pourquoi tu n'utiliserais pas un tache cron (exécution automatique de script) ?!
ça te permettrais de faire ça automatiquement sans devoir appuyer sur un bouton et tu peux le faire par petite partie.

Par contre à part savoir que ça existe c'est pas moi qui vais t'expliquer comment ça fonctionne
Yoshio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/08/2006, 23h54   #3
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
Citation:
Envoyé par omura
Par contre à part savoir que ça existe c'est pas moi qui vais t'expliquer comment ça fonctionne
Arf j'allais te le demander. En effet ca m'interesse.

Je vais chercher des infos la dessus.
(sauf si quelqu'un ici connais bien cette methode ^^).
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 00h43   #4
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Pour les taches cron il existe plusieurs solutions. Et elles sont souvent traitées sur le forum et dans les cours (surtout ceux de mathieu).

Il existe la solution webcron.

une petite recherche sur le forum aidera à trouver ton bonheur
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 00h45   #5
Membre expérimenté
 
Inscription : octobre 2004
Messages : 872
Détails du profil
Informations forums :
Inscription : octobre 2004
Messages : 872
Points : 582
Points : 582
en general les batch sont effectuées la nuit , par des taches cron ou autre
jeff_! est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 07h34   #6
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
Et aussi, veiller à optimiser la mise à jour. Comment fais-tu? INSERT/UPDATE dans une boucle ou LOAD DATA INFILE ?
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 13h31   #7
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
Je fait une test pour chaque donné pour voir si le produit est présent ou pas. Si il est présent je fait update sinon insert.

Comment fait-on une tache Cron?
__________________
manganimes (en construction) -
zemanga
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2006, 13h50   #8
Membre émérite
 
Inscription : mai 2004
Messages : 709
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : mai 2004
Messages : 709
Points : 852
Points : 852
crontab -e

http://www.linux-kheops.com/doc/man/...crontab.5.html
__________________
:q :q! :wq :w :w! :wq! :quit :quit! :help help helpquit quit quithelp
:quitplease :quitnow :leave :shit ^X^C ^C ^D ^Z ^Q QUITDAMMIT
Jabber: ripat at im.apinc.org
ripat est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web