PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 01-11-2010 14:50:08

yule
Membre
Inscription : 24-09-2009
Messages : 35

Comment Instaurer une pause avec sleep() toutes les 10 lignes

Bonjour,

Pour instaurer une pause de 2 secondes pour chaque ligne traitée, je fais ceci

$i++
sleep(2)

Comment faire la même chose en indiquant de faire une pause de 2 secondes toutes les 10 lignes traitées ?

j'ai trouvé cet exemple qui lui va traiter les 10 première lignes puis stopper

for ($i = 0; $i <10; $i++) {
sleep(2)
}

Mais j'ai pas trouvé d'exemple enfin si c'est possible de traiter par coup de 10 à la fois et faire une pause de 2 secondes ensuite

Ca veut dire quoi ça ?

$i++;
if (!($i%10))
sleep(2);

d'avance merci
yule

Dernière modification par yule (01-11-2010 15:09:26)

Hors ligne

#2 01-11-2010 15:28:05

moogli
Modérateur
Inscription : 08-05-2009
Messages : 336
Site Web

Re : Comment Instaurer une pause avec sleep() toutes les 10 lignes

Salut
Il faut que tu test si le modulo 10 de i est egale a zero to test a toi est toujours vrai !
If ( ($i%10)==0) sleep(2);

Attetion tu risque de te retrouver en timeout si tu a un gros jeux de données (30s).

@+


Il en faut peu pour être heureux pompompompompompompompompompompom

Hors ligne

#3 01-11-2010 16:38:31

yule
Membre
Inscription : 24-09-2009
Messages : 35

Re : Comment Instaurer une pause avec sleep() toutes les 10 lignes

SAlut,

Merci pour l'astuce ! Sinon pour le timeout, je suis pas sur d'avoir compris

Ce que je comprends... le sleep(2) augment les risques de se retrouver en timeout ? mieux vaut rien mettre alors ou passer par du flush() pour vider le tampon ?

un truc du genre

$i++;
If ( ($i%10)==0) ;
ob_flush();
flush();
//sleep (2)
 
//ensuite, j'update les données sur ma bd...
 
ob_end_flush();

A+
Yule

Dernière modification par yule (01-11-2010 16:43:06)

Hors ligne

#4 08-11-2010 12:58:34

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 38
Site Web

Re : Comment Instaurer une pause avec sleep() toutes les 10 lignes

yule a écrit :

SAlut,

Merci pour l'astuce ! Sinon pour le timeout, je suis pas sur d'avoir compris

Ce que je comprends... le sleep(2) augment les risques de se retrouver en timeout ? mieux vaut rien mettre alors ou passer par du flush() pour vider le tampon ?

Mieux vaux ne pas utiliser sleep et laisser le serveur gérer, le timeout  tu peux l'augmenter avec set_time_limit(0)*
* a 0 aucune limite n'est imposée.

Hors ligne

Pied de page des forums