Commit 8bb7c650 authored by jim's avatar jim

release

parent 65873c7e
...@@ -9,6 +9,14 @@ public class QueryIpUrlList { ...@@ -9,6 +9,14 @@ public class QueryIpUrlList {
private String id; private String id;
private String url; private String url;
public QueryIpUrlList() {
}
public QueryIpUrlList(String id, String url) {
this.id = id;
this.url = url;
}
public String getId() { public String getId() {
return id; return id;
} }
...@@ -24,4 +32,6 @@ public class QueryIpUrlList { ...@@ -24,4 +32,6 @@ public class QueryIpUrlList {
public void setUrl(String url) { public void setUrl(String url) {
this.url = url; this.url = url;
} }
} }
...@@ -20,12 +20,12 @@ import com.edgec.browserbackend.common.commons.utils.NotifyUtils; ...@@ -20,12 +20,12 @@ import com.edgec.browserbackend.common.commons.utils.NotifyUtils;
import com.edgec.browserbackend.common.utils.ThreadPoolUtils; import com.edgec.browserbackend.common.utils.ThreadPoolUtils;
import com.edgec.browserbackend.common.utils.Trans; import com.edgec.browserbackend.common.utils.Trans;
import okhttp3.*; import okhttp3.*;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.aggregation.ArrayOperators;
import org.springframework.http.HttpEntity; import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType; import org.springframework.http.MediaType;
...@@ -35,10 +35,7 @@ import org.springframework.web.client.RestTemplate; ...@@ -35,10 +35,7 @@ import org.springframework.web.client.RestTemplate;
import java.io.IOException; import java.io.IOException;
import java.time.Instant; import java.time.Instant;
import java.util.Arrays; import java.util.*;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicInteger;
...@@ -238,40 +235,40 @@ public class BrowserTask { ...@@ -238,40 +235,40 @@ public class BrowserTask {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
if (ipResourceRepository.healthLock(ipResource)) { if (ipResourceRepository.healthLock(ipResource)) {
try { try {
QueryIpUrlList queryIpUrlList = queryIpUrlListRepository.findAll().get(0); int failTime = 0;
List<QueryIpUrlList> queryIpUrlLists = queryIpUrlListRepository.findAll();
final int maxRetry = Math.max(queryIpUrlLists.size(), 5);
if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) { if (ipResource.getValidTime() <= Instant.now().toEpochMilli() && ipResource.getStatus() != 3 && ipResource.getStatus() != 6) {
ipResource.setStatus(1); ipResource.setStatus(1);
ipResourceRepository.save(ipResource); ipResourceRepository.save(ipResource);
} } else if (ipResource.isSpecialLine()) {
else if (ipResource.isSpecialLine()) {
Trans trans = new Trans(ipResource.getProxyUsername(), ipResource.getProxyPassword()); Trans trans = new Trans(ipResource.getProxyUsername(), ipResource.getProxyPassword());
String sp_result = trans.get(queryIpUrlList.getUrl()); String sp_result = trans.get(getNextUrl(queryIpUrlLists, failTime).getUrl());
int failTime = 0;
while (!sp_result.contains(ipResource.getAddr())) { while (!sp_result.contains(ipResource.getAddr())) {
if (failTime > 5) { if (failTime > maxRetry) {
NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常", NotifyUtils.MsgType.WEBHOOK); NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常", NotifyUtils.MsgType.WEBHOOK);
log.error("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常 " + sp_result); log.error("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常 " + sp_result);
break; break;
} }
failTime ++; failTime++;
Thread.sleep(2000); Thread.sleep(2000);
sp_result = trans.get(queryIpUrlList.getUrl()); sp_result = trans.get(getNextUrl(queryIpUrlLists, failTime).getUrl());
} }
} else if (ipResource.getIpType() == IpType.VENDOR){ } else if (ipResource.getIpType() == IpType.VENDOR) {
String result; String result;
Trans trans = new Trans(ipResource.getAddr(), Integer.valueOf(ipResource.getPort().size() > 1?ipResource.getPort().get(1):ipResource.getPort().get(0)), ipResource.getUsername(), ipResource.getPassword()); Trans trans = new Trans(ipResource.getAddr(), Integer.valueOf(ipResource.getPort().size() > 1 ? ipResource.getPort().get(1) : ipResource.getPort().get(0)), ipResource.getUsername(), ipResource.getPassword());
result = trans.get(queryIpUrlList.getUrl()); result = trans.get(getNextUrl(queryIpUrlLists, failTime).getUrl());
if (!result.contains(ipResource.getAddr())) { if (!result.contains(ipResource.getAddr())) {
int failTime = 0;
while (!result.contains(ipResource.getAddr())) { while (!result.contains(ipResource.getAddr())) {
if (failTime > 5) { if (failTime > maxRetry) {
NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常", NotifyUtils.MsgType.WEBHOOK); NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常", NotifyUtils.MsgType.WEBHOOK);
log.error("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常 " + result); log.error("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常 " + result);
break; break;
} }
failTime ++; failTime++;
Thread.sleep(2000); Thread.sleep(2000);
result = trans.get(queryIpUrlList.getUrl()); result = trans.get(getNextUrl(queryIpUrlLists, failTime).getUrl());
} }
} }
} }
...@@ -293,6 +290,17 @@ public class BrowserTask { ...@@ -293,6 +290,17 @@ public class BrowserTask {
} }
} }
private static QueryIpUrlList getNextUrl(List<QueryIpUrlList> queryIpUrlLists, int count) {
if (CollectionUtils.isEmpty(queryIpUrlLists)) {
return null;
}
int size = queryIpUrlLists.size();
int index = count % size;
return queryIpUrlLists.get(index);
}
@Scheduled(cron = "0 0 0 * * ?") @Scheduled(cron = "0 0 0 * * ?")
public void countIp() { public void countIp() {
List<Account> accounts = accountRepository.findAll(); List<Account> accounts = accountRepository.findAll();
...@@ -348,23 +356,13 @@ public class BrowserTask { ...@@ -348,23 +356,13 @@ public class BrowserTask {
public static void main(String[] args) throws IOException { public static void main(String[] args) throws IOException {
// String url = CLOUDAMURL + "/ecc/ipinfo?accountId=browser&ip=" + "100.25.101.201"; List<QueryIpUrlList> queryIpUrlLists = new ArrayList<>();
// String profiles = "prod"; queryIpUrlLists.add(new QueryIpUrlList("1", "baidu"));
// Map<String, String> headers = new HashMap<>(); queryIpUrlLists.add(new QueryIpUrlList("2", "google"));
// headers.put("Content-Type", "application/json"); for (int i = 0; i < 10; i++) {
// if (profiles.equals("dev") || profiles.equals("staging")) System.out.println(getNextUrl(queryIpUrlLists, i).getUrl());
// headers.put("Authorization", "Bearer oq5tg3gMsflHcK5iZ2741G5R30XYd9blyOqH9qeBItKtrzfTsGIoy8AsxqqNXdcm"); }
// else if (profiles.equals("prod"))
// headers.put("Authorization", "Bearer tKWsuHzcngf0RQPMss70f9jgymDIwgQ9zbLfESJdcou3pZSNWl7lNTzto8VQgwaO");
//
// String rs = HttpClientutils.doGet(url, headers);
// System.out.println(rs);
// IpInfoResultDto ipInfoResultDto = JSONObject.parseObject(rs, IpInfoResultDto.class);
// System.out.println(ipInfoResultDto);
Trans trans = new Trans("8.208.28.192", "962MrDCCd2pvaA1");
String sp_result = trans.get("http://pv.sohu.com/cityjson");
System.out.println(sp_result);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment