如果ruby函数执行时间过长,如何终止它?

如果ruby函数执行时间过长,如何终止它?,ruby,timeout,execution,terminate,Ruby,Timeout,Execution,Terminate,我有一些ruby代码如下: result1 = function_1(params) result2 = function_2(params) result3 = function_3(params) 但有时它们中的一些可能会花费太多的时间(这些功能取决于互联网连接速度)。如果需要5秒以上的时间,我需要终止函数的执行。我该如何使用ruby way呢?您可以使用 鲁比太棒了。。。认真地 require 'timeout' status = Timeout::timeout(5) { # So

我有一些ruby代码如下:

result1 = function_1(params)
result2 = function_2(params)
result3 = function_3(params)
但有时它们中的一些可能会花费太多的时间(这些功能取决于互联网连接速度)。如果需要5秒以上的时间,我需要终止函数的执行。我该如何使用ruby way呢?

您可以使用


鲁比太棒了。。。认真地
require 'timeout'
status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes too much time...
}
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