Tell Ruby Program to Wait some amount of time

后端 未结 6 1314
渐次进展
渐次进展 2020-12-07 07:24

How do you tell a Ruby program to wait an arbitrary amount of time before moving on to the next line of code?

相关标签:
6条回答
  • 2020-12-07 07:54

    Like this:

    sleep(num_secs)
    

    The num_secs value can be an integer or float.

    Also, if you're writing this within a Rails app, or have included the ActiveSupport library in your project, you can construct longer intervals using the following convenience syntax:

    sleep(4.minutes)
    # or, even longer...
    sleep(2.hours); sleep(3.days) # etc., etc.
    # or shorter
    sleep(0.5) # half a second
    
    0 讨论(0)
  • 2020-12-07 08:00

    sleep 6 will sleep for 6 seconds. For a longer duration, you can also use sleep(6.minutes) or sleep(6.hours).

    0 讨论(0)
  • 2020-12-07 08:01

    Like this

    sleep(no_of_seconds)

    Or you may pass other possible arguments like:

    sleep(5.seconds)

    sleep(5.minutes)

    sleep(5.hours)

    sleep(5.days)

    0 讨论(0)
  • 2020-12-07 08:07

    Implementation of seconds/minutes/hours, which are rails methods. Note that implicit returns aren't needed, but they look cleaner, so I prefer them. I'm not sure Rails even has .days or if it goes further, but these are the ones I need.

    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
    

    After this, you can do: sleep 5.seconds to sleep for 5 seconds. You can do sleep 5.minutes to sleep for 5 min. You can do sleep 5.hours to sleep for 5 hours. And finally, you can do sleep 5.days to sleep for 5 days... You can add any method that return the value of self * (amount of seconds in that timeframe). As an exercise, try implementing it for months!

    0 讨论(0)
  • 2020-12-07 08:13

    Use sleep like so:

    sleep 2
    

    That'll sleep for 2 seconds.

    Be careful to give an argument. If you just run sleep, the process will sleep forever. (This is useful when you want a thread to sleep until it's woken.)

    0 讨论(0)
  • 2020-12-07 08:13

    I find until very useful with sleep. example:

    > time = Time.now
    > sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
    
    0 讨论(0)
提交回复
热议问题