【问题标题】: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
    

    【讨论】:

    • Ruby 太棒了……说真的
    【解决方案2】:

    你可以使用Timeout

    require 'timeout'
    status = Timeout::timeout(5) {
      # Something that should be interrupted if it takes too much time...
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-04
      • 1970-01-01
      • 2020-11-12
      • 2011-04-26
      • 1970-01-01
      • 2021-02-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多