Как вы говорите программе Ruby ждать произвольное количество времени, прежде чем перейти к следующей строке кода?
418
Нравится:
sleep(num_secs)
num_secs
Значение может быть целым или с плавающей точкой.
Кроме того, если вы пишете это в приложении Rails или включили библиотеку ActiveSupport в свой проект, вы можете создавать более длинные интервалы, используя следующий удобный синтаксис:
sleep(4.minutes)
# or, even longer...
sleep(2.hours); sleep(3.days) # etc., etc.
# or shorter
sleep(0.5) # half a second
Я нахожу
until
очень полезным со сном. пример:источник
sleep(10.seconds)
until
можно спать, пока не будет достигнуто какое-либо условие (также мне нравится то, насколько естественным является синтаксис)sleep 6
будет спать в течение 6 секунд. В течение более длительного периода вы также можете использоватьsleep(6.minutes)
илиsleep(6.hours)
.источник
minutes()
иhours()
методы чисел, добавленные Ruby on Rails - поэтому они не являются стандартными в Ruby - в классе ActiveSupport :: Duration. Они довольно удобны, хотя.Реализация секунд / минут / часов, которые являются методами рельсов. Обратите внимание, что неявные возвраты не нужны, но они выглядят чище, поэтому я предпочитаю их. Я не уверен, что у Rails даже есть .days или если он пойдет дальше, но это те, которые мне нужны.
После этого вы можете сделать:
sleep 5.seconds
спать 5 секунд. Можноsleep 5.minutes
спать до 5 мин. Можноsleep 5.hours
спать до 5 часов. И, наконец, вы можетеsleep 5.days
спать в течение 5 дней ... Вы можете добавить любой метод, который возвращает значение self * (количество секунд в этом периоде). В качестве упражнения попробуйте реализовать его в течение нескольких месяцев!источник