web-dev-qa-db-fra.com

Dites Ruby programme pour attendre un certain temps

Comment pouvez-vous dire à un programme Ruby d'attendre un laps de temps arbitraire avant de passer à la ligne de code suivante?

380
user94154

Comme ça:

sleep(num_secs)

La valeur num_secs peut être un entier ou un flottant.

De même, si vous écrivez cela dans une application Rails, ou si vous avez inclus la bibliothèque ActiveSupport dans votre projet, vous pouvez construire des intervalles plus longs à l'aide de la syntaxe de commodité suivante:

sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
612
rcoder

Utilisez sleep comme suit:

sleep 2

Ça va dormir pendant 2 secondes.

Veillez à donner un argument. Si vous exécutez simplement sleep, le processus dormira pour toujours. (Ceci est utile lorsque vous voulez qu'un thread s'endorme jusqu'à ce qu'il soit réveillé.)

112

sleep 6 dormira pendant 6 secondes. Pour une durée plus longue, vous pouvez également utiliser sleep(6.minutes) ou sleep(6.hours).

1
vijaya chowdary

Je trouve until très utile pour dormir. exemple:

> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
0
Varun Garg