Probleme avec la fonction System en PHP

cs_MATHIS49 Messages postés 368 Date d'inscription vendredi 10 octobre 2003 Statut Membre Dernière intervention 14 mai 2010 - 11 déc. 2009 à 05:22
Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 - 11 déc. 2009 à 09:40
Bonjour,
Je suis entrain de faire des scripts PHP pour gerer un parc informatique de 150 PC.
Ces script PHP lance d'autres script, souvent Batch qui sont souvent des petit utilitaires...

J'utilise la function system pour se faire.
Exemple d'une simple boucle qui lance i fois l'utilisaire growlnotify :

for ($i= 0;$i<count($myarray);$i++) {
if($myarray[$i]!="") { 
echo " $myarray[$i] 
" ; 
system('growlnotify.com /host:'.$myarray[$i].' /t:"'.$_POST['title'].'"   /cu:"'.$_POST['link'].'" /s:"'.$_POST['sticky'].'" /i:"'.$_POST['icon'].'" /pass:1234  "'.$message.'"'); echo "
"; 
}
  
}

Le serveur est un serveur WAMP.
Le script marche tres bien pour une 10ene (i =10) de PC mais lorsque quil sagit de 150PC le serveur rame vachement a un point ou je me demande meme sil ne plante pas.

J'aurais voulu savoir si cetait un probleme de configuration de serveur ou un probleme de gestion de la memoire ou quelque chose d'autre?

Pourriez vous m'aider a trouver une solution a ce probleme ?
MErci beacuoup

1 réponse

Tonio_35 Messages postés 567 Date d'inscription mercredi 4 octobre 2006 Statut Membre Dernière intervention 30 août 2011 11
11 déc. 2009 à 09:40
Hello,

Déjà pour optimiser un tout petit peut ton code :
<?php
// Ici je fais qu'une fois le calcul count($myarray) à l'initialisation du for
// Toi tu le recalculais à chaque boucle...
for ($i=0, $t = count($myarray);$i<$t;$i++)
{
   // Ici si ton élément est vide avec le continue, tu passe directement à la suite du for sans parcourir le reste de l'interieur du for
   if($myarray[$i]=="")
      continue;
   echo "$myarray[$i]
" ;
   system('growlnotify.com /host:'.$myarray[$i].' /t:"'.$_POST['title'].'"   /cu:"'.$_POST['link'].'" /s:"'.$_POST['sticky'].'" /i:"'.$_POST['icon'].'" /pass:1234  "'.$message.'"');
   echo "
"; 
}
?>


Bon la tu va gagner des miliemes de dixièmes de seconde mais c'est déjà ca... Après je regarde plus en détail et je te réponds ici...

Peut etre un peut d'ajax pour pas faire tous tes system() d'un coup... Peut etre un sleep entre chaque... Je vais chercher

_________________________________
Min iPomme
0
Rejoignez-nous