Skip to content

Commit 4bedd97

Browse files
committed
Revert " 刷新代理api重构,需要提供旧代理,如果依然是旧代理,才进行刷新,防止应延迟响应造成的过度刷新"
This reverts commit 0aa2c39.
1 parent 3f756c9 commit 4bedd97

File tree

5 files changed

+6
-28
lines changed

5 files changed

+6
-28
lines changed

webmagic-core/src/main/java/us/codecraft/webmagic/Spider.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,7 @@ private void onDownloadSuccess(Request request, Page page) {
426426
}
427427
} else if(site.getRefreshCode().contains(page.getStatusCode())) {
428428
logger.info("page status code error, page {} , code: {}, start refresh downloader", request.getUrl(), page.getStatusCode());
429-
failHandler(request);
429+
downloader.refreshComponent(this);
430430
}else {
431431
logger.info("page status code error, page {} , code: {}", request.getUrl(), page.getStatusCode());
432432
}
@@ -435,11 +435,6 @@ private void onDownloadSuccess(Request request, Page page) {
435435
}
436436

437437
private void onDownloaderFail(Request request) {
438-
failHandler(request);
439-
}
440-
441-
private void failHandler(Request request){
442-
downloader.refreshComponent(this);
443438
if (site.getCycleRetryTimes() == 0) {
444439
sleep(site.getSleepTime());
445440
} else {

webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientDownloader.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ public void setRefreshClientOnError(Predicate<Throwable> clientOnError){
5454
this.refreshClientOnError = clientOnError;
5555
}
5656
public void setRefreshProxyOnError(Predicate<Throwable> proxyOnError) {
57-
this.refreshProxyOnError = proxyOnError;
57+
this.refreshProxyOnError = refreshProxyOnError;
5858
}
5959

6060
public void setHttpUriRequestConverter(HttpUriRequestConverter httpUriRequestConverter) {
@@ -94,7 +94,7 @@ public Page download(Request request, Task task) {
9494
logger.warn("download page {} error", request.getUrl(), e);
9595
onError(request, e, proxyProvider);
9696
if (proxyProvider != null && refreshProxyOnError.test(e)) {
97-
proxyProvider.refreshProxy(task,proxy);
97+
proxyProvider.refreshProxy(task);
9898
}
9999
if(refreshClientOnError.test(e)) {
100100
httpClients.remove(task.getSite().getDomain());
@@ -115,7 +115,7 @@ public Page download(Request request, Task task) {
115115
@Override
116116
public void refreshComponent(Task task) {
117117
if (proxyProvider != null ) {
118-
proxyProvider.refreshProxy(task,proxyProvider.getCurrentProxy(task));
118+
proxyProvider.refreshProxy(task);
119119
}
120120

121121
httpClients.remove(task.getSite().getDomain());

webmagic-core/src/main/java/us/codecraft/webmagic/downloader/HttpClientGenerator.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ public void process(
143143
SocketConfig.Builder socketConfigBuilder = SocketConfig.custom();
144144
socketConfigBuilder.setSoKeepAlive(true).setTcpNoDelay(true);
145145
socketConfigBuilder.setSoTimeout(site.getTimeOut());
146-
147146
SocketConfig socketConfig = socketConfigBuilder.build();
148147
httpClientBuilder.setDefaultSocketConfig(socketConfig);
149148
connectionManager.setDefaultSocketConfig(socketConfig);

webmagic-core/src/main/java/us/codecraft/webmagic/proxy/ProxyProvider.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,8 @@ public interface ProxyProvider {
2323
* 代理IP是珍贵资源,有可能代理提供者内部代理没有过期,就一直提供某个IP,但这个IP又不可以使用,所以提供一种方式通知提供者,这个代理该刷新了
2424
*
2525
* @param task 下载任务
26-
* @param proxy 需要对代理进行验证,如果确实持有的时错误代理,则刷新,否则,继续执行
2726
*/
28-
void refreshProxy(Task task,Proxy proxy);
29-
30-
31-
/**
32-
*
33-
* 获取当前正在提供的代理
34-
*
35-
* @param task
36-
* @return
37-
*/
38-
Proxy getCurrentProxy(Task task);
27+
void refreshProxy(Task task);
3928

4029
/**
4130
* Get a proxy for task by some strategy.

webmagic-core/src/main/java/us/codecraft/webmagic/proxy/SimpleProxyProvider.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,7 @@ private SimpleProxyProvider(List<Proxy> proxies, AtomicInteger pointer) {
3131
}
3232

3333
@Override
34-
public Proxy getCurrentProxy(Task task) {
35-
return null;
36-
}
37-
38-
@Override
39-
public void refreshProxy(Task task,Proxy proxy) {
34+
public void refreshProxy(Task task) {
4035

4136
}
4237

0 commit comments

Comments
 (0)