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

  FORUM HardWare.fr
  Programmation
  PHP

  Gro import => Timeout

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Gro import => Timeout

n°1185255
benou_z
Posté le 26-08-2005 à 14:06:54  profilanswer
 

Hello !
 
je souhaite importer un ficher CSV contenant + de 50.000 Ref ds mysql
via un script php (petit module dimport). cependant jai un pblm de timeout.
forcement, ca prends + de 30 sec.
jai testé en le decoupant en plein de petits fichiers...ca marche plutot pas mal...mais c 'est trop lent comme process.
Quelqu'un aurait une solution pour importer mon fichier en une fois ?
Merci

mood
Publicité
Posté le 26-08-2005 à 14:06:54  profilanswer
 

n°1185263
soju
One shot !
Posté le 26-08-2005 à 14:09:50  profilanswer
 

le mieux serait d'utiliser les commandes mysql...
sinon, si ton hebergeur le permet, change la valeur de max_execution_time avec ini_set


Message édité par soju le 26-08-2005 à 14:10:27
n°1185266
benou_z
Posté le 26-08-2005 à 14:12:18  profilanswer
 

merci
=> commandes mysql : pas possible car le module doit etre utilisé par une personne lambda...
=> max execution time...je vais essayer...merci
Quel quun a une autre proposition ?

n°1185301
benou_z
Posté le 26-08-2005 à 14:32:41  profilanswer
 

personne d'autre n a une tite idée ?

n°1185302
omega2
Posté le 26-08-2005 à 14:32:58  profilanswer
 

Avec mysql, si tu importes plusieurs lignes en une seule requette, ca ira beaucoup plus vite qu'avec une requette par ligne.
En php, il y a une fonction pour changer la durée de timeout quand la fonction n'est pas bloqué (c'est le cas chez quasiment tous les hébergeurs gratuits) mais je me souviens plus laquelle.

n°1185306
soju
One shot !
Posté le 26-08-2005 à 14:34:23  profilanswer
 

omega2 a écrit :

Avec mysql, si tu importes plusieurs lignes en une seule requette, ca ira beaucoup plus vite qu'avec une requette par ligne.
En php, il y a une fonction pour changer la durée de timeout quand la fonction n'est pas bloqué (c'est le cas chez quasiment tous les hébergeurs gratuits) mais je me souviens plus laquelle.

lis plus haut...

n°1185308
benou_z
Posté le 26-08-2005 à 14:35:35  profilanswer
 

malheureusement, le timeout est bloqué, meme en mutualisé payant.... i lfaut avoir un serveur dediée pour le gerer ?

n°1185313
soju
One shot !
Posté le 26-08-2005 à 14:38:02  profilanswer
 

benou_z a écrit :

malheureusement, le timeout est bloqué, meme en mutualisé payant.... i lfaut avoir un serveur dediée pour le gerer ?


je suis chez ovh en mutualisé et c'est possible
 
sinon :
- t'as pas acces au commande mysql ??
- tu peux aussi faire une page qui se recharge automatiquement et fais à chaque fois un bout du travail... mais c'est du bidouillage...

n°1185332
benou_z
Posté le 26-08-2005 à 14:52:10  profilanswer
 

jai un hebergement chez ovh aussi .
tu utilise max_execution_time  chez eux ?  

n°1185351
soju
One shot !
Posté le 26-08-2005 à 15:07:19  profilanswer
 

benou_z a écrit :

jai un hebergement chez ovh aussi .
tu utilise max_execution_time  chez eux ?


oui avec ini_set (ya aussi set_time_limit)
et tu as aussi accès aux commandes mysql !
 
 

mood
Publicité
Posté le 26-08-2005 à 15:07:19  profilanswer
 

n°1185762
benou_z
Posté le 26-08-2005 à 23:42:30  profilanswer
 

ok merci !
 
jai acces a mysql, mais l'objectif est vraiment d'atterir sur ma page
> import.php > parcourir, aller chercher le fichier CSV de 1 mega, l'uploader sur le serveur mutualisé OVH
puis ensuite lancer mon traitement => Comparer le csv avec le contenu de la base et mettre a jour ! ( cela prend au moins entre 5 et 10 minutes je pense).

n°1185862
omega2
Posté le 27-08-2005 à 13:45:58  profilanswer
 

si tu remplis toutes les colones de la table tu peux peut être utiliser replace à la place d'insert :
http://www.nexen.net/docs/mysql/an [...] en=replace

n°1190289
benou_z
Posté le 02-09-2005 à 11:43:18  profilanswer
 

=> soju
 
Quel timeout utilises tu ?
jai essayé 300 et ca plante.... une idée ?

n°1190316
soju
One shot !
Posté le 02-09-2005 à 11:56:30  profilanswer
 

benou_z a écrit :

jai essayé 300 et ca plante.... une idée ?


et ça plante comment ? message d'erreur ?

n°1190331
benou_z
Posté le 02-09-2005 à 12:05:06  profilanswer
 

ba nan pas de message derreur...c pour ca
"impossible d'afficher la page".....

n°1190372
omega2
Posté le 02-09-2005 à 12:55:52  profilanswer
 

Traduction : "le serveur, il répond pas assez vite"

n°1190402
benou_z
Posté le 02-09-2005 à 13:55:33  profilanswer
 

c clair...donc fo baisser le timeout....tu le mets a combien toi ?

n°1190409
omega2
Posté le 02-09-2005 à 14:01:52  profilanswer
 

Moi, j'y touche pas n'ayant pas besoin d'y toucher. Et si j'ai besoin de plus de temps, je me démerde pour envoyer des infos au navigateur de maniére réguliére afin de faire patienter et le navigateur et la personne qu'est devant.
Et je peux pas envoyer d'infos réguliérement, je me démerderais pour rediriger le navigateur vers une autre page qui sera chargé de lui dire que c'est "en court de traitement" et qui vérifiera de maniére réguliére si le traitement est finis et si c'est possible, où il en est ce traitement.

n°1190451
benou_z
Posté le 02-09-2005 à 14:39:43  profilanswer
 

ok...merci...
et toi soju, qul timeout met tu chez OVH ?
sinon quelquun connait un logiciel qui permet de se connecter a mysql et de mettre a jour la base ?
genre SQL CONTROL CENTER...dans lidée ?

n°1190463
soju
One shot !
Posté le 02-09-2005 à 14:48:22  profilanswer
 

avec 300 ça marche chez moi, mais j'envois régulièrement des données au navigateur afin d'éviter le timeout coté client.
 
en soft mysql ya http://www.mysqlfront.de/ mais je doute que cela fonctionne vu qu'il faut que le serveur ovh accepte les connexions externes.

n°1190473
benou_z
Posté le 02-09-2005 à 14:55:04  profilanswer
 

jai un autre hebergeur qui accepte les connexions externees c pour ca...merci pour ta réponse, donc 300 ca passe

n°1190485
benou_z
Posté le 02-09-2005 à 15:00:27  profilanswer
 

le soft permet de mettre a jour ou seulement decraser ?

n°1190552
la viper
Posté le 02-09-2005 à 15:34:16  profilanswer
 

si la solution existe en php .. (evidement j'ai plus le code sur moi)
l'idée c'est de différer l'écriture dans le output et de terminer le load de la page web que quand ton import/export est terminé.. moi j'y avais un script qui pouvait tourner indéfiniment comme ça (avec une barre de progression)
 
http://fr3.php.net/manual/fr/function.ob-start.php
http://fr3.php.net/manual/fr/function.ob-flush.php
 
cadeau-->
voilà ce que j'avais trouvé et modifié:
http://fr3.php.net/manual/fr/function.flush.php#52147

n°1190587
soju
One shot !
Posté le 02-09-2005 à 15:56:51  profilanswer
 

benou_z a écrit :

le soft permet de mettre a jour ou seulement decraser ?


avec une requete sql tu peux mettre à jour,"écraser"... donc à ton avis ?
et le mieux à faire dans ces cas là c'est comme même d'essayer
 

la viper a écrit :

si la solution existe en php [...] moi j'y avais un script qui pouvait tourner indéfiniment comme ça (avec une barre de progression)


la solution à quoi ? le problème n'était pas de faire une barre de progress, mais de gérer max_execution_time...
et ton script je vois mal comment il peut "tourner indéfiniment" sans modifier max_execution_time justement...
 
 
 
 

n°1190698
benou_z
Posté le 02-09-2005 à 16:52:27  profilanswer
 

oui effectivement, ca ecrase....moi je veux pas ecraser ..lol...pas tro compris le viper...

mood
Publicité
Posté le   profilanswer
 


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

  Gro import => Timeout

 

Sujets relatifs
supprimer le Timeout php avec XamppImport/export partiel d'une BDD
thread et timeoutOracle : Import/Export
[Perl] Timeout sur socketpb select et timeout
Apache : impossible de modifier "Timeout"xsl:import avec Firefox
Quel TimeOut pour un snmpget et un réseau de 600 ips à scanner ?import a travers des repertoires
Plus de sujets relatifs à : Gro import => Timeout


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