Ответы:
Нравится:
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
Используйте сон так:
sleep 2
Это будет спать в течение 2 секунд.
Будьте осторожны, чтобы привести аргумент. Если вы просто запустите sleep
, процесс будет спать вечно. (Это полезно, когда вы хотите, чтобы поток спал, пока он не проснулся.)
Я нахожу until
очень полезным со сном. пример:
> time = Time.now
> sleep 2.seconds until Time.now > time + 10.seconds # breaks when true
sleep(10.seconds)
until
можно спать, пока не будет достигнуто какое-либо условие (также мне нравится то, насколько естественным является синтаксис)
sleep 6
будет спать в течение 6 секунд. В течение более длительного периода вы также можете использовать sleep(6.minutes)
или sleep(6.hours)
.
minutes()
и hours()
методы чисел, добавленные Ruby on Rails - поэтому они не являются стандартными в Ruby - в классе ActiveSupport :: Duration. Они довольно удобны, хотя.
Реализация секунд / минут / часов, которые являются методами рельсов. Обратите внимание, что неявные возвраты не нужны, но они выглядят чище, поэтому я предпочитаю их. Я не уверен, что у Rails даже есть .days или если он пойдет дальше, но это те, которые мне нужны.
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
После этого вы можете сделать:
sleep 5.seconds
спать 5 секунд. Можно sleep 5.minutes
спать до 5 мин. Можно sleep 5.hours
спать до 5 часов. И, наконец, вы можете sleep 5.days
спать в течение 5 дней ... Вы можете добавить любой метод, который возвращает значение self * (количество секунд в этом периоде). В качестве упражнения попробуйте реализовать его в течение нескольких месяцев!