【问题标题】:How to terminate ruby function execution if it takes too long time to work?如果工作时间过长,如何终止 ruby 函数执行?
【发布时间】:2012-07-24 17:56:23
【问题描述】:
我有一些这样的 ruby 代码:
result1 = function_1(params)
result2 = function_2(params)
result3 = function_3(params)
但有时它们中的一些可能需要太多时间才能工作(此功能取决于互联网连接速度)。如果需要超过 5 秒,我需要终止函数的执行。我应该如何用 ruby-way 来做呢?
【问题讨论】:
标签:
ruby
timeout
execution
terminate
【解决方案1】:
require 'timeout'
timeout_in_seconds = 20
begin
Timeout::timeout(timeout_in_seconds) do
#Do something that takes long time
end
rescue Timeout::Error
# Too slow!!
end
【解决方案2】:
你可以使用Timeout。
require 'timeout'
status = Timeout::timeout(5) {
# Something that should be interrupted if it takes too much time...
}