Sidekiq任务堵塞问题
今天发现服务器上的sidekiq 线程全忙。队列里任务积累了好多。 sidekiq里的任务基本都是爬虫脚本,都需要请求外部网站。但是有些网站的响应时间或者读取时间太久,一直一直卡在那里。使得后面的任务不能执行。 所以我们就应该控制请求外部链接的读取时间,避免线程卡住。 在任务里请求外部网站有两种方式: 第一种用rest_client请求. RestClient.post url, params 改进方法: RestClient::Request.execute( :method => :post, :url => url, :payload => params, :timeout => 10, :open_timeout => 10 ) 另一种用Nokogiri请求。 Nokogiri::HTML.parse(open(url)) 改进方法: Nokogiri::HTML.parse(open(url, :read_timeout => 10)) 来源: https://www.cnblogs.com/wangyuyu/p/4278995.html