Sidekiq任务堵塞问题

橙三吉。 提交于 2020-01-24 02:02:07

  今天发现服务器上的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))

 

 
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!