|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
Bonjour,
Actuellement je travail sur un script d'extraction d'information de la base de données vers un fichier de type pdf. Ce script a pour bug de générer une centaine voir 200 pdf pendant son exécution sauf que je rencontre un problème qui me semble venir du max_execution_time. Puisque mon script ne se finit pas, et s'arrête au bout de 30 seconde, valeur par défaut dans le phpinfo. Je sais qu'il faut modifier le fichier php.ini, mais malheureusement j'ai pas accès au paramètre du serveur web. J'ai essayé de mettre un init_set... mais ça semble ne pas fonctionner. connaitriez-vous une autre méthode ? Voici mon script : Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
fait set_time_limit(0) au début de ton code
__________________
http://blog.stealth35.com/ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
Merci pour ta réponse. ça fonctionne mieux. Mais le script s'arrête de façons aléatoires. Parfois il finit bien son travail. d'autres fois il fait même pas le 1/4.
Je comprends vraiment pas. |
|
|
00
|
|
|
#4 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
après voir fait de nombreux test... le script finit des fois son travail, et des fois il s’arrête en plein milieu. C'est vraiment très aléatoire. Je ne comprend pas d'où peut venir le problème !
|
|
|
00
|
|
|
#5 |
![]() ![]() Inscription : septembre 2010 Messages : 7 103 ![]() |
a mon avis ta classe PDF n'est pas très optimisé et prend beaucoup de ressource
__________________
http://blog.stealth35.com/ |
|
|
10
|
|
|
#6 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
J'utilise une classe que j'ai repris d'internet. Mais est-il possible de pallier à ce problème avec un memory_limit ?
|
|
|
00
|
|
|
#7 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Tout ça n'est que de la bidouille, il vaudrait mieux pour toi de faire générer ces fichiers par des threads séparés ou par un daemon en mode CLI. Bref, ta logique de génération est à revoir.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#8 | ||||
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
excuse moi de mon ignorance. Quand tu parles de thread.. qu'est ce que tu veux dire par là ?
Par exemple : generationPdf.php Code :
Code :
Merci pour vos réponses. |
||||
|
|
00
|
|
|
#9 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Pour faire simple, si la génération de tous les PDF d'un seul bloc est trop lourde au niveau mémoire / temps d'éxécution, il serait peut-être judicieux de paralléliser ces traitements de telle sorte que plusieurs processus (ou plusieurs threads - ou sous-processus si tu préfères - si tu peux installer l'extension PCNTL) se découpent la tâche.
On peut également envisager de créér une pile de traitement (en BDD par exemple) avec un cronjob (une tâche réccurente lancée périodiquement par le serveur) qui toutes les X minutes effectueraient une partie des traitements. On peut aussi faire ça avec Ajax de telle sorte qu'on attende qu'un fichier (ou bloc) soit terminé pour demander la génération des fichiers (ou blocs) suivants. Ce qui permettrait au passage d'afficher une barre de chargement.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
10
|
|
|
#10 |
|
Invité de passage
![]() Inscription : mars 2010 Messages : 46 ![]() |
Merci pour ta réponse. Le seul choix qui me reste est donc l'ajax. Puisque avec PCNTL, il faut un environnement UNIX... dommage c'est hébergé sur un serveur windows. Ensuite pour cronjob, crontab et compagnie.... c'est pas possible non plus, le script est à destination d'un intranet, et cron tab faut avoir la main sur le serveur... ce que je n'ai pas. Je vais allez regarder du coté du Ajax, apprendre les principes, et faire ce que j'ai envie de faire.
Merci beaucoup ! |
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Pas de quoi
Pour bien débuter avec Ajax regarde du coté de jQuery: - http://javascript.developpez.com/cou...meworks#jquery
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
Copyright © 2000-2012 - www.developpez.com