Réponses:
Comme ça:
sleep(num_secs)
La num_secs
valeur peut être un entier ou un flottant.
De plus, si vous écrivez ceci dans une application Rails ou si vous avez inclus la bibliothèque ActiveSupport 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 le sommeil comme ça:
sleep 2
Ça va dormir pendant 2 secondes.
Soyez prudent de donner un argument. Si vous venez de courir sleep
, le processus s'endormira pour toujours. (Ceci est utile lorsque vous souhaitez qu'un fil soit en veille jusqu'à ce qu'il se réveille.)
Je trouve until
très utile le sommeil. exemple:
> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
sleep(10.seconds)
until
peut être utilisé pour dormir jusqu'à ce que toutes les conditions soient remplies (j'aime aussi la façon dont la syntaxe est naturelle)
sleep 6
dormira pendant 6 secondes. Pour une durée plus longue, vous pouvez également utiliser sleep(6.minutes)
ou sleep(6.hours)
.
minutes()
et hours()
des méthodes sur numerics ajoutées par Ruby on Rails - donc pas en Ruby standard disponibles - dans la ActiveSupport :: classe Durée. Ils sont assez pratiques cependant.
Mise en place de secondes / minutes / heures, qui sont des méthodes de rails. Notez que les retours implicites ne sont pas nécessaires, mais ils ont l'air plus propres, donc je les préfère. Je ne suis pas sûr que Rails ait même des jours ou s'il va plus loin, mais ce sont ceux dont j'ai besoin.
class Integer
def seconds
return self
end
def minutes
return self * 60
end
def hours
return self * 3600
end
def days
return self * 86400
end
end
Après cela, vous pouvez faire:
sleep 5.seconds
dormir pendant 5 secondes. Vous pouvez faire sleep 5.minutes
pour dormir pendant 5 min. Vous pouvez faire sleep 5.hours
pour dormir pendant 5 heures. Et enfin, vous pouvez faire sleep 5.days
pour dormir pendant 5 jours ... Vous pouvez ajouter n'importe quelle méthode qui retourne la valeur de self * (quantité de secondes dans cette période). Comme exercice, essayez de le mettre en œuvre pendant des mois!