Probleme d'execution

Eléphant du PHP | 101 Messages

12 mai 2010, 10:04

Bonjour,
Je cherche à lancer un programme qui parcours un fichier csv et qui insert des données dans la DB. Mais mon programme s'arrête au bout de 3 minutes environ alors qu'il n'est pas encore au tiers du traitement. Quelqu'un saurait de quoi cela provient?
Modifié en dernier par pepyte le 17 mai 2010, 10:09, modifié 1 fois.

Eléphant du PHP | 86 Messages

12 mai 2010, 10:08

Salut,

Ton serveur Apache est configuré pour un certains temps d'exécution pour tes pages.
Tu peux forcer un temps illimité dans ton script avec un set_time_limit(0) avant ton traitement.

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 10:12

ducoup ca le fait avec d'autre fichier ou pas ?

Eléphant du PHP | 101 Messages

12 mai 2010, 10:15

Je vais essayer. Et comment peut-on suivre l'avancement de l'exécution?

Eléphant du PHP | 101 Messages

12 mai 2010, 10:20

Ça fonctionne avec d'autre fichier quand le traitement est plus rapide, mais la même avec la console mon traitement met 10 minutes...Il faudrai que j'utilise les replace mais mes champs ne sont pas clé primaire ni unique...donc je fais une verification et par la suite Update ou Insert...pas genial

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 10:21

Je vais essayer. Et comment peut-on suivre l'avancement de l'exécution?
deja apres que le fichier soit télécharger (mais tu pourrais suivre le téléchargement grace a APC)
ensuite avec le buffer dans le style :
echo '<pre>';  
ob_end_flush();
       
for($i = 0; $i < 10; $i++)
{              
        echo $i . PHP_EOL;             
        sleep(1);
        flush();
}

Eléphant du PHP | 101 Messages

12 mai 2010, 10:36

C'est bon pour le temps d'exécution, c'était bien ça. Et stealth35 je pourrais avoir plus d'explication sur ton code stp ^^. Si ça ne te dérange pas.

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 10:40

C'est bon pour le temps d'exécution, c'était bien ça. Et stealth35 je pourrais avoir plus d'explication sur ton code stp ^^. Si ça ne te dérange pas.
on gère la gestion de sortie manuellement ob_end_flush éteins la sortie automatique, ensuite a chaque flush on envoie a la sortie

Eléphant du PHP | 101 Messages

12 mai 2010, 10:42

et le 10 dans le for correspond au nombre d'enregistrement du fichier?

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 10:44

et le 10 dans le for correspond au nombre d'enregistrement du fichier?
c'était un exemple pour que tu t'en inspire :wink:
c'est juste une boucle qui s'affiche petit a petit, va falloir que tu fasse pareil dans ton while en gros

Eléphant du PHP | 101 Messages

12 mai 2010, 11:16

Ok je vois, et c'est possible que ça aille plus vite? Car pour 150000 lignes à cette allure...lol. Et comment ça ce fait qu'avec 40000 lignes, mon script va bien et mes insertions aussi même si je l'arrête l'execution. Alors qu'avec 150000 il ne se passe rien? Je ne vois aucune insertion ni rien.

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 11:17

Ok je vois, et c'est possible que ça aille plus vite? Car pour 150000 lignes à cette allure...lol. Et comment ça ce fait qu'avec 40000 lignes, mon script va bien et mes insertions aussi même si je l'arrête l'execution. Alors qu'avec 150000 il ne se passe rien? Je ne vois aucune insertion ni rien.
tu le voyais dans $_FILES au moins ?

Eléphant du PHP | 101 Messages

12 mai 2010, 11:25

Bin pas d'erreur donc je pense que oui je ne l'ai pas affiché, mais il y a le traitement des erreurs avant son ouverture.

ViPHP
ViPHP | 5462 Messages

12 mai 2010, 11:26

Bin pas d'erreur donc je pense que oui je ne l'ai pas affiché, mais il y a le traitement des erreurs avant son ouverture.
remontre ton fichier de traitement

Eléphant du PHP | 101 Messages

12 mai 2010, 11:28

Le upload_size_filesize, il faut le changer dans Apache ou php?