ruby-on-rails – 如果超过X秒,则退出线程

ruby-on-rails – 如果超过X秒,则退出线程,第1张

概述我正在使用这样的 Ruby线程: threads = []for page in pages threads << Thread.new(page) { |myPage| h = Net::HTTP.new(myPage, 80) puts "Fetching: #{myPage}" resp, data = h.get('/', nil ) puts " 我正在使用这样的 Ruby线程:

threads = []for page in pages  threads << Thread.new(page) { |myPage|    h = Net::http.new(myPage,80)    puts "Fetching: #{myPage}"    resp,data = h.get('/',nil )    puts "Got #{myPage}:  #{resp.message}"  }endthreads.each { |aThread|  aThread.join }

假设我想杀死一分钟后仍在运行的所有线程.我该怎么做?

解决方法 我通常用 Timeout超时 *** 作:

require "timeout"Timeout.timeout(seconds) do ...end

也许this可以提供帮助,所以在你的情况下,我认为这样的事情应该有效:

begin  Timeout.timeout(5) do    for page in pages      threads << Thread.new(page) { |myPage|        h = Net::http.new(myPage,80)        puts "Fetching: #{myPage}"        resp,nil )        puts "Got #{myPage}:  #{resp.message}"      }    end    threads.each { |aThread|  aThread.join }  endrescue Timeout::Error   # kill threads hereend

但你确定你的控制器是最好的地方吗?他们在后台任务中不会更好吗?

总结

以上是内存溢出为你收集整理的ruby-on-rails – 如果超过X秒,则退出线程全部内容,希望文章能够帮你解决ruby-on-rails – 如果超过X秒,则退出线程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1225782.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存