Comment demander à un programme Ruby d'attendre un certain temps avant de passer à la ligne de code suivante?Dites au programme Ruby d'attendre un certain temps
Répondre
Il est assez facile:
sleep(num_secs)
La valeur « num_secs » peut être un entier ou flottant. En outre, si vous écrivez cela dans une application Rails, ou avez inclus la bibliothèque ActiveSupport ailleurs dans votre projet, vous pouvez construire des intervalles plus longs en utilisant 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
Utilisez sleep comme ceci:
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 un fil de dormir jusqu'à ce qu'il soit réveillé.)
sleep 6
dormiront pendant 6 secondes. Pour une durée plus longue, vous pouvez également utiliser sleep(6.minutes)
ou sleep(6.hours)
.
Je ne suis pas sûr des downvotes sur ce sujet, mais il se pourrait que 'minutes()' et 'hours()' soient des méthodes sur les nombres ajoutés par Ruby on Rails - donc pas standard dans Ruby - dans la classe ActiveSupport :: Duration. Ils sont très pratiques cependant. –
Attendez, dormira-t-il pour toujours, ou jusqu'à ce qu'il soit "réveillé"? Que signifie "woken"? – anthropomorphic
@anthropomorphic Cela fait référence à quand un autre thread appelle Thread # run. –
En fait, quand un autre thread appelle Thread # wakeup, je suppose. – chesterbr