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

最新文章

  1. Error:Execution failed for task ':app:dexDebug'.
  2. ecshop商品-》获取促销商品总数
  3. canvas 3D运动球效果
  4. sftp 设置仅能访问自己目录的用户
  5. [原]Ubuntu 14.04编译Android Kernel
  6. maven-dependency-plugin插件的使用
  7. Unity3D 的摄像机
  8. Android ActionBar以及menu的代码设置样式
  9. CentOS安装Chrome
  10. JQuery方法扩展
  11. haskell学习笔记_函数
  12. NGUI ScrollView动态加入和删除对象。
  13. protobuf是什么?
  14. go日常问题记录
  15. [JavaScript] 表单验证不通过不提交的JS写法
  16. 服务器多站点多域名HTTPS实现
  17. response.setContentType()的String参数及对应类型
  18. springMVC操作cookie和session
  19. html5 canvas贝塞尔曲线篇(上)
  20. C#学习笔记(20)——使用IComparer(自己写的)

热门文章

  1. podspec文件介绍
  2. atitit.插件体系设计总结o73.doc
  3. 大姨吗向左,美柚向右,女性健康APP路在何方?
  4. wicket基础应用(1)--使用wicket对表单中的数据进行验证
  5. Revit API 楼板开洞
  6. C#Winform程序如何发布并自动升级(图解)
  7. 在为知笔记中使用JQuery
  8. The web application [] appears to have started a thread named [Abandoned connection cleanup thread] com.mysql.jdbc.AbandonedConnectionCleanupThread
  9. 基于apt实现的Android快速持久化框架:AptPreferences
  10. Maven full settings.xml