gpt4 book ai didi

ruby - 有没有一种方法可以编写一个 Ruby 循环,该循环在最大设定时间内运行一次迭代?

转载 作者:太空宇宙 更新时间:2023-11-03 17:03:57 24 4
gpt4 key购买 nike

我希望创建一个最多运行一定时间的 Ruby (MRI 1.9.3) 循环,一旦该时间结束,它将进入循环的下一次迭代。

例如,这是我希望实现的:

timer = Timer.new
while foo
timer.after 5 do # The loop on foo only gets to run for 5 seconds
next
end

# Do some work here
end

到目前为止,我已经找到了 tarcieri 的 gem,称为 Timers ( https://github.com/tarcieri/timers ),这是我在上面的代码中试图模拟的,但我的实现没有给出我期望的行为,这是循环如果我的工作花费的时间比这更长,则在 5 秒后转到下一次迭代。有什么想法吗?

最佳答案

require 'timeout'
timeout_in_seconds = 5
while foo
begin
Timeout.timeout(timeout_in_seconds) do
# Do some work here
end
rescue Timeout::Error
next
end
end

关于ruby - 有没有一种方法可以编写一个 Ruby 循环,该循环在最大设定时间内运行一次迭代?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12161783/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com