我正在使用SystemTimer gem来处理超时问题。 https://github.com/ph7/system-timer
我找不到在超时
时捕获异常的方法begin
SystemTimer.timeout_after(10.seconds) do
# facebook api
rest_graph.fql(query)
end
rescue RestGraph::Error::InvalidAccessToken
return nil
rescue Timeout::Error
# never executed
end
但最后一次Exception Timeout :: Error永远不会被触发。
答案 0 :(得分:1)
为什么不使用1.9.2附带的Timeout来设计这样做?
require 'timeout'
status = Timeout::timeout(5) {
# Something that should be interrupted if it takes too much time...
}
答案 1 :(得分:0)
试试这个:(根据你的链接)
class TimedOut < StandardError
end
begin
SystemTimer.timeout_after(10.seconds, TimedOut) do
# ...
end
rescue TimedOut
# ...
end