code4craft / webmagic

A scalable web crawler framework for Java.
http://webmagic.io/
Apache License 2.0
11.45k stars 4.18k forks source link

某些情况下爬虫会莫名其妙卡住不动,但状态是Running #1096

Closed keatonLiu closed 2 years ago

keatonLiu commented 2 years ago

图片

sutra commented 2 years ago

有一個已知問題是,如果使用us.codecraft.webmagic.scheduler.QueueScheduler並且開啓了 cycle retry(us.codecraft.webmagic.Site.setCycleRetryTimes(int)),在 Queue 滿(缺省是 Integer#MAX_VALUE)的時候就會形成死鎖。

keatonLiu commented 2 years ago

我确实用了setCycleRetryTimes,但是不确定是否Queue满,大概率没有满,我在看我代码里面的其他错误。此外我知道setCycleRetryTimes是把重试请求放到队列里,但是setRetryTimes的作用不不知道是什么,实际使用的时候好像没有作用,文档里面也没有介绍

sutra commented 2 years ago

setRetryTimes 是讓 HttpClient 自己去重試(org.apache.http.impl.client.DefaultHttpRequestRetryHandler.DefaultHttpRequestRetryHandler(int, boolean))。