手把手教你实现window图片爬虫(三)

第三篇:性能优化及踩坑

  优化工作

    1.采用基于线程池管理的定时任务ScheduledThreadPoolExecutor
    2.所有的异步操作统一走线程池管理
    3.监控信息查询优化(降低复杂度)
    4.增加失败重试机制
    5.网页抓取以及图片下载多线程异步进行,并严格控制并发数量(界面配置爬取速度)
    6.选择速度最快的jackson序列化以及反序列化
    7.添加网络ping监控、内存监控

    8.代码优化,降低耦合度,增加可扩展性。

踩过的坑

    1.phantomjs设置了超时时间,但是一直处在运行状态无法结束。原因:个别网站js运行报错,影响phantomjs嵌入的js代码运行 。解决方案:通过定时任务去自动清理这些假死的phantomjs进程


    2.未注意set遍历和添加同时进行的线程安全问题,意外导致抓取任务挂掉。  解决方案:检查代码所有多线程操作的地方,有必要的地方进行加锁,保证线程安全。


    3.操作swt视图内控件报错。原因:swt只允许自己的守护线程调用。 解决方案:增加数据的中转仓库,由守护线程自己主动取数据。


    4.图片下载出现各种异常。原因:网络状态不好,偶尔会失败或者超时。解决方案:增加失败重试机制


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值