Hoe vertel je een Ruby-programma om een willekeurige hoeveelheid tijd te wachten voordat je verder gaat naar de volgende regel van code?
Antwoord 1, Autoriteit 100%
Zoals dit:
sleep(num_secs)
De num_secs
WAARDE kan een geheel getal of drijven zijn.
Ook, als u dit binnen een rails-app schrijft of de ActiveSupport-bibliotheek in uw project hebt opgenomen, kunt u langere intervallen construeren met behulp van de volgende gemaksyntaxis:
sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
Antwoord 2, Autoriteit 18%
Gebruik slaap zoals SO:
sleep 2
die 2 seconden slapen.
Wees voorzichtig om een argument te geven. Als u gewoon ondervindt sleep
, slaapt het proces voor altijd. (Dit is handig wanneer u een draad wilt slapen totdat deze wordt gewekt)
Antwoord 3
Ik vind until
zeer nuttig met slaap. Voorbeeld:
> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
> # or
> sleep 2 and puts 'still sleeping' until Time.now > time + 10
> # or
> sleep 1.seconds until !req.loading # suggested by ohsully
Antwoord 4
Implementatie van seconden/minuten/uren, dit zijn rails-methoden. Merk op dat impliciete rendementen niet nodig zijn, maar ze zien er schoner uit, dus ik geef er de voorkeur aan. Ik weet niet zeker of Rails zelfs .days heeft of dat het verder gaat, maar dit zijn degene die ik nodig heb.
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
Hierna kunt u het volgende doen:
sleep 5.seconds
om 5 seconden te slapen. Je kunt sleep 5.minutes
doen om 5 minuten te slapen. Je kunt sleep 5.hours
doen om 5 uur te slapen. En tot slot kun je sleep 5.days
doen om 5 dagen te slapen… Je kunt elke methode toevoegen die de waarde self * retourneert (aantal seconden in dat tijdsbestek).
Probeer het als oefening maandenlang te implementeren!
Antwoord 5
sleep 6
slaapt 6 seconden. Voor een langere duur kun je ook sleep(6.minutes)
of sleep(6.hours)
gebruiken.
Antwoord 6
Vind ik leuk
sleep(no_of_seconds)
Of je kunt andere mogelijke argumenten doorgeven, zoals:
sleep(5.seconds)
sleep(5.minutes)
sleep(5.hours)
sleep(5.days)
Antwoord 7
Dit is een voorbeeld van het gebruik van sleep
met sidekiq
require 'sidekiq'
class PlainOldRuby
include Sidekiq::Worker
def perform(how_hard="super hard", how_long=10)
sleep how_long
puts "Workin' #{how_hard}"
end
end
slaap 10 seconden en print "Working super hard"
.