Cherche un script pour faire X traitements par seconde (limiter à X)


loran750
WRInaute passionné
WRInaute passionné
 
Messages: 2247
Inscription: 15 Mar 2005

Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 17:14

Bonjour,

Je suis en train de développer un script shell en php (oui, ya pas que le Perl !) et mon besoin est le suivant :

Je dois lancer un appel à une fonction indéfiniment, mais je dois limiter cet appel à 10 appels par secondes maximum (temps de traitement de l'appel compris).

Avez-vous un bout de code tout prêt ?

merci d'avance.
lolo


loran750
WRInaute passionné
WRInaute passionné
 
Messages: 2247
Inscription: 15 Mar 2005

Re: Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 18:26

bon en faisant tourner mes neurones et en profitant d'un moment où j'étais moins paresseux, j'ai codé ceci pour les gens intéressés

Code: Tout sélectionner
while ( (!$maconditiondesortie) {

   $time = time();
   //print (date('Y-m-d H:i:s', $time)."\n");
   
   //mon traitement
   .................

   //ma boucle d'attente pour que mon traitement + l'attente ne descende pas en dessous de 6 secondes. Soit une limite de 10 traitements à la minute.
   while ( abs( time()-$time ) <= 6  ) {
   }
}

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2233
Inscription: 25 Oct 2005

Re: Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 18:42

Ce n'est pas X traitements par seconde mais par minute donc...

Et pour si peu de traitements, t'as une drôle de façon de t'y prendre... pourquoi ne pas utiliser sleep ?
Le temps de traitement peut fortement varier ?


loran750
WRInaute passionné
WRInaute passionné
 
Messages: 2247
Inscription: 15 Mar 2005

Re: Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 20:01

oui, tu as raison, c'est par minute.

Le temps de traitement ne varie pas beaucoup et est négligeable vis à vis de la seconde. Le traitement doit être d'environ quelques 1/10e de seconde au maximum. En ce qui me concerne, c'est un appel SOAP avec attente d'une réponse.

Autre soucis, mon code faisait monter mon CPU à 90% ! 'tain ! heureusement que j'ai vu ça mais depuis 18h15 jusqu'à 20h55 mon serveur était à genou !!!

Je vais passer avec ton sleep(6)... et cela pourrait me convenir. Car cela fera un traitement + l'attente à 6,1 à 6,3 secondes au lieu de 6,0 secondes). Cela me convient, surtout vis à vis du CPU :)
Note : Sleep prend comme paramètre des secondes. Pour certaines personnes, cela peut être trop, et souhaiteraient des millisecondes, des dizaines ou des centaines.

Robinson
WRInaute passionné
WRInaute passionné
 
Messages: 2233
Inscription: 25 Oct 2005

Re: Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 21:51

Pour les microsecondes, c'est usleep tout simplement ^^


loran750
WRInaute passionné
WRInaute passionné
 
Messages: 2247
Inscription: 15 Mar 2005

Re: Cherche un script pour faire X traitements par seconde (limiter à X)

Message le Lun Avr 25, 2011 22:18

merci Robinson, je n'ai pas assez cherché !


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités