在 JavaScript 中,您可以执行以下操作:
setInterval(func,delay);
我似乎无法在谷歌上找到任何我真正想要的东西。这有红宝石等价物吗?提前致谢。
你可以做这样的事情:
Thread.new do
loop do
sleep delay
# your code here
end
end
或者你可以定义一个函数:
# @return [Thread] return loop thread reference
def set_interval(delay)
Thread.new do
loop do
sleep delay
yield # call passed block
end
end
end
当您想停止 时set_interval
,您只需调用以下任何方法exit
:stop
或kill
。
您可以在控制台(irb
或pry
)中对其进行测试:
t1 = Time.now; t = set_interval(2.5) {puts Time.now - t1}
> 2.500325
> 5.000641
> 7.500924
...
t.kill # stop the set_interval function
我使用rufus-scheduler:
scheduler = Rufus::Scheduler.new
scheduler.every '5m' do
# Some Fancy Code Logic That Runs Every 5 Minutes
end