ruby-on-rails – Ruby Timeout :: timeout不触发异常,不返回记录的内容

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Ruby Timeout :: timeout不触发异常,不返回记录的内容前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这段代码
begin
  complete_results = Timeout.timeout(4) do      
    results = platform.search(artist,album_name)
  end
rescue Timeout::Error
  puts 'Print me something please'
end

然后我启动包含此代码方法,那么这里是堆栈跟踪的开始:

Exception message :  execution expired
Exception backtrace :  /***/****/.rvm/rubies/ruby-1.8.7-p302/lib/ruby/1.8/timeout.rb:64:i

所以我天真地认为我的电话超时.但是,’打印我的东西’不会打印,并且complete_results假定是超时状态返回值(在文档中提到的是true或false),绝对不是一个布尔值.

我做错了吗?

解决方法

你的代码是正确的
require 'timeout'
begin
  complete_results = Timeout.timeout(1) do      
   sleep(2)
  end
rescue Timeout::Error
  puts 'Print me something please'
end

打印出来“打印我的东西请”.

尝试上面的基本代码.如果这样做,你在platform.search中有一个问题.

猜你在找的Ruby相关文章