Pau*_* S. 5 wget ruby-on-rails-3
在 Rails 中,我进行了系统调用wget:
system("wget", ...)
Run Code Online (Sandbox Code Playgroud)
我想为这个调用设置一个超时时间,这样如果它花费的时间太长(这可能意味着下载了太多文件,或者下载了一个大文件),我想停止它并向用户返回一个错误,以便我的服务器没有超载。我怎样才能做到这一点?
小智 3
您是否特别需要在这样的子 shell 中运行调用?如果没有,请使用超时和反引号:
require 'timeout'
Timeout.timeout(3) do
puts `tree /` # raises an exception, which you can rescue and handle
end
Run Code Online (Sandbox Code Playgroud)
不过,如果您确实需要在外部运行它,我会选择类似Subexec 的东西
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |