nombre de scripts limité avec buffers de sorties

Petit nouveau ! | 4 Messages

10 avr. 2006, 10:17

Bonjour à tous,

je bloque depuis 2 jours sur le problème suivant :
depuis une page (index.php) je peux appeler différents scripts qui utilisent les buffers de sorties (commande flush() principalement) car leur temps d'exécution est long et que je dois recevoir les résultats au fur et à mesure des opérations qui s'exécutent. Ces scripts marchent bien; le problème est que je ne peux lancer que 2 scripts à la fois. Dès que je veux activer le 3ème script la page ne s'ouvre que lorsque l'un des 2 scripts précédents se termine. Par contre, si j'ouvre une autre page index.php, je peux lancer deux autres scripts en concurrence !

Quelqu'un saurait-il me dire d'où viennent ces limites ??? :roll:

Les scripts se chargent de lancer des codeurs windows media à distance au travers d'objets dcom.

Chaque codeur est un pc différent et je dois pouvoir lancer plusieurs scripts en même temps car il s'agit d'une gestion de parc de codeurs à distance et je dois pouvoir lancer plusieurs encodages en parallèle.

J'ai eu recours aux commandes flush() pour recevoir du serveur les résultats de chaque étape (Transfert de fichier, initialisation du codeur, configuration, lancement, etc ...).

Merci infiniment pour votre aide,
alain :wink:

Mammouth du PHP | 983 Messages

10 avr. 2006, 19:54

Comment lances tu ces scripts? Avec proc_open() ou séquentiellement?

Petit nouveau ! | 4 Messages

10 avr. 2006, 21:39

Bonjour rami et merci pour ta réponse.

Je lance mes scripts séquentiellement, en ouvrant les pages php concernées avec javascript.

J'ai précisé précédemment que j'utilisais des buffers de sorties, mais après avoir essayé sans buffers de sorties j'ai toujours le même problème.

Je me demande d'où vient cette limite au lancement de plus de 2 scripts concurrents depuis une même page web. As-tu une idée ? J'ai regardé dans le php.ini et aussi dans le fichier de configuration de mon serveur apache, mais je ne vois vraiment pas...

merci à toi et bonne soirée,
alain

Mammouth du PHP | 983 Messages

11 avr. 2006, 10:12

Vu que tu les lances séquentiellement, je pencherais sur le fait que tes scripts s'exécutent pendant au moins 30 sec, qui est le temps maximal par défaut d'exécution d'un script php (voir la directive max_execution_time ds php.ini).

Petit nouveau ! | 4 Messages

11 avr. 2006, 12:05

Mes scripts s'exécutent bien et jusqu'au bout ! J'ai justement mis 'max_execution_time' à 0 pour éviter cette limite.

Mais le problème est que je n'arrive pas à lancer plus de 2 pages php (contenant des scripts qui s'exécutent sur une longue période) depuis une page index.php. Par contre, si je réouvre une autre page index.php je peux lancer 2 autres scripts en concurrence et ainsi de suite ...

Mais je voudrais pouvoir lancer autant de scripts que nécessaire depuis une unique page principale (index.php) !

Mammouth du PHP | 983 Messages

11 avr. 2006, 14:22

Je ne vois pas d'où cela peut venir. Tu es certain que tes scripts ne font pas d'exit (ou die()) ?

Petit nouveau ! | 4 Messages

11 avr. 2006, 15:10

Non, il n'y a pas d'exit ni de die.