加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 在Rails中设置系统调用的超时

发布时间:2020-12-17 02:21:12 所属栏目:百科 来源:网络整理
导读:从Rails,我对wget进行系统调用: system("wget",...) 我想为这个调用设置一个超时,这样如果它需要太长时间(这可能意味着下载了太多文件,或者下载了大文件),我想停止它并向用户返回一个错误,这样我的服务器没有超载.我怎样才能做到这一点? 解决方法 你是否特
从Rails,我对wget进行系统调用:

system("wget",...)

我想为这个调用设置一个超时,这样如果它需要太长时间(这可能意味着下载了太多文件,或者下载了大文件),我想停止它并向用户返回一个错误,这样我的服务器没有超载.我怎样才能做到这一点?

解决方法

你是否特别需要在子shell中运行这样的调用?如果没有,请使用超时和反引号:

require 'timeout'

Timeout.timeout(3) do
  puts `tree /`  # raises an exception,which you can rescue and handle
end

但是,如果你确实需要在外部运行它,我会选择像Subexec这样的东西

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读