如何在正在运行的任务上实现超时?

时间:2014-11-10 12:46:08

标签: ruby networking

我需要编写一个ruby块来轮询远程网络服务。因为,这是网络爱,我需要强制执行几个条件:

  • 如果没有完成X分钟后超时
  • 如果没有响应,则在API调用超时

我可以使用ruby中的执行库或等效文件吗?我需要基本上设置一个线程在后台运行并阻止它的执行,然后期望线程(块)的状态/返回值并对结果进行操作。

对ruby来说有点新鲜//

2 个答案:

答案 0 :(得分:1)

尝试这样的事情:

Timeout.timeout(60) do #time is sec
  #your code    
end

rescue Timeout::Error
  #rescue code
end

答案 1 :(得分:0)

请在Ruby的Std-lib中查看Timeout