régulation de lancement de processus simultanés

régulation de lancement de processus simultanés - Shell/Batch - Programmation

Marsh Posté le 27-04-2017 à 17:57:06    

Bonjour à tous je cherche à lancer une vingtaine de processus php "simultanés" en background via un script bash. Chacun alimentés en paramètre avec une url pour "simuler" un crawler
 
J'aimerais à chaque lancement incrémenter une variable globale et à chaque fin d'exécution du script décrementer cette variable dans le but de ne jamais lancer plus de 20 processus simultanés ..  
Pour l'instant j'y parviens au moyen de mysql, mais je ne parviens qu'à créer 5 à 10 processus par seconde, pas plus ..
 
Auriez-vous des idées afin de pouvoir lancer plus de processus par seconde, et avoir quelquechose de plus rapide que mysql pour réguler le nombre de processus en cours ?
Merci pour vos lumières  :jap:


Message édité par grosbin le 27-04-2017 à 17:57:22

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 27-04-2017 à 17:57:06   

Reply

Marsh Posté le 11-05-2017 à 23:37:50    

mysql ? o_O


---------------
I'm too old for this shit.
Reply

Marsh Posté le 12-05-2017 à 00:03:38    

script pour generer des lignes random :
 

Code :
  1. fred@karpate:/tmp$ cat genurls.sh
  2. #!/bin/bash
  3. base="http://www.blabla.com/x="
  4. while true;
  5. do
  6.    suf=$(hexdump -n 2 -e '"%04X\n"' /dev/urandom)
  7.    echo ${base}${suf}
  8. done
  9. exit 0


 
ton traitement php (j'ai pas php... c'est donc du bash) :

Code :
  1. fred@karpate:/tmp$ cat truc.php
  2. #!/bin/bash
  3. sleep $(( RANDOM%3 ))
  4. exit 0


 
launcher "parallele" de 5 process truc.php :

Code :
  1. fred@karpate:/tmp$ ./genurls.sh |xargs -n 1 -P 5 -t ./truc.php
  2. ./truc.php http://www.blabla.com/x=0B18
  3. ./truc.php http://www.blabla.com/x=B479
  4. ./truc.php http://www.blabla.com/x=F318
  5. ./truc.php http://www.blabla.com/x=4795
  6. ./truc.php http://www.blabla.com/x=7E3C
  7. ./truc.php http://www.blabla.com/x=04C8
  8. ./truc.php http://www.blabla.com/x=B139
  9. ...
  10. ctrl-c



---------------
I'm too old for this shit.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed