Vertel RUBY-programma om een ​​bepaalde tijd te wachten

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_secsWAARDE 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 untilzeer 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.secondsom 5 seconden te slapen. Je kunt sleep 5.minutesdoen om 5 minuten te slapen. Je kunt sleep 5.hoursdoen om 5 uur te slapen. En tot slot kun je sleep 5.daysdoen 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 6slaapt 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 sleepmet 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".

Other episodes