如何告诉Ruby程序在继续下一行代码之前等待任意数量的时间?
当前回答
这是一个在sidekiq中使用sleep的例子
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
睡10秒钟,然后打印出“工作非常努力”。
其他回答
是这样的:
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,进程将永远处于休眠状态。(当你想让线程休眠直到被唤醒时,这很有用。)
这是一个在sidekiq中使用sleep的例子
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
睡10秒钟,然后打印出“工作非常努力”。
我发现直到对睡眠很有用。例子:
> 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
Sleep 6会睡6秒。对于更长的时间,你也可以使用睡眠(6分钟)或睡眠(6小时)。
推荐文章
- Rails中的OO设计:在哪里放置东西
- 给定一个类,查看实例是否有方法(Ruby)
- 在日历应用程序中建模重复事件的最佳方法是什么?
- 如何在TypeScript中实现睡眠函数?
- 如何创建一个私有类方法?
- 无法安装pg gem
- 双* (splat)操作符做什么
- 如何使用Ruby on Rails进行HTTP请求?
- 如何从rake任务中提前返回?
- 什么&。(&点)在Ruby中是什么意思?
- 是什么阻碍了Ruby和Python获得V8的Javascript速度?
- 运行pod设置给我“坏的解释器:没有这样的文件或目录”错误
- 在Ubuntu上安装sqlite3-ruby错误
- Ruby有什么Python没有的,反之亦然?
- find_spec_for_exe':无法找到gem bundle (>= 0.a) (gem::GemNotFoundException)