Commit 8b075ab8 authored by renjie's avatar renjie

健康检查修改

parent f261ccb3
...@@ -117,7 +117,7 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto ...@@ -117,7 +117,7 @@ public class IpResourceRepositoryCustomImpl implements IpResourceRepositoryCusto
MatchOperation match = Aggregation.match(matchCriteria); MatchOperation match = Aggregation.match(matchCriteria);
SampleOperation sample = Aggregation.sample(20); SampleOperation sample = Aggregation.sample(100);
AggregationResults<IpResource> results = mongoTemplate.aggregate(Aggregation.newAggregation(match, sample), IpResource.class, IpResource.class); AggregationResults<IpResource> results = mongoTemplate.aggregate(Aggregation.newAggregation(match, sample), IpResource.class, IpResource.class);
List<IpResource> mappedResults = results.getMappedResults(); List<IpResource> mappedResults = results.getMappedResults();
......
...@@ -219,62 +219,60 @@ public class BrowserTask { ...@@ -219,62 +219,60 @@ public class BrowserTask {
} }
} }
@Scheduled(cron = "0 0/1 * * * ?") @Scheduled(cron = "0 0/5 * * * ?")
public void healthCheck() { public void healthCheck() {
List<IpResource> ipResources = ipResourceRepository.sampleTasks(Arrays.asList(0, 2)); List<IpResource> ipResources = ipResourceRepository.sampleTasks(Arrays.asList(0, 2));
for (IpResource ipResource : ipResources) { for (IpResource ipResource : ipResources) {
long start = System.currentTimeMillis(); long start = System.currentTimeMillis();
CompletableFuture.runAsync(() -> { if (ipResourceRepository.healthLock(ipResource)) {
if (ipResourceRepository.healthLock(ipResource)) { try {
try { QueryIpUrlList queryIpUrlList = queryIpUrlListRepository.findAll().get(0);
QueryIpUrlList queryIpUrlList = queryIpUrlListRepository.findAll().get(0); if (ipResource.isSpecialLine()) {
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(), true);
String sp_result = trans.get(queryIpUrlList.getUrl(), true); int failTime = 0;
int failTime = 0; while (!sp_result.contains(ipResource.getAddr())) {
while (!sp_result.contains(ipResource.getAddr())) { if (failTime > 5) {
if (failTime > 5) { 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 ++;
Thread.sleep(2000);
sp_result = trans.get(queryIpUrlList.getUrl(), true);
} }
failTime ++;
Thread.sleep(2000);
sp_result = trans.get(queryIpUrlList.getUrl(), true);
} }
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()); String result;
result = trans.get(queryIpUrlList.getUrl(), false); Trans trans = new Trans(ipResource.getAddr(), Integer.valueOf(ipResource.getPort().size() > 1?ipResource.getPort().get(1):ipResource.getPort().get(0)), ipResource.getUsername(), ipResource.getPassword());
if (!result.contains(ipResource.getAddr())) { result = trans.get(queryIpUrlList.getUrl(), false);
int failTime = 0; if (!result.contains(ipResource.getAddr())) {
while (!result.contains(ipResource.getAddr())) { int failTime = 0;
if (failTime > 5) { while (!result.contains(ipResource.getAddr())) {
NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常", NotifyUtils.MsgType.WEBHOOK); if (failTime > 5) {
log.error("防关联浏览器 ip " + ipResource.getAddr() + " 专线代理异常 " + result); NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常", NotifyUtils.MsgType.WEBHOOK);
break; log.error("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常 " + result);
} break;
failTime ++;
Thread.sleep(2000);
result = trans.get(queryIpUrlList.getUrl(), true);
} }
failTime ++;
Thread.sleep(2000);
result = trans.get(queryIpUrlList.getUrl(), true);
} }
} catch (Exception e) { }
NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常", e, NotifyUtils.MsgType.WEBHOOK); } catch (Exception e) {
log.error(e.getMessage(), e); NotifyUtils.sendMessage("防关联浏览器 ip " + ipResource.getAddr() + " 代理异常", e, NotifyUtils.MsgType.WEBHOOK);
} finally { log.error(e.getMessage(), e);
long end = System.currentTimeMillis(); } finally {
log.debug("queryIpTask {} execution time is: " + (end - start) / 1000 + "s", ipResource.getId()); long end = System.currentTimeMillis();
try { log.debug("queryIpTask {} execution time is: " + (end - start) / 1000 + "s", ipResource.getId());
ipResourceRepository.unLockHealth(ipResource.getId()); try {
} catch (Throwable th) { ipResourceRepository.unLockHealth(ipResource.getId());
log.error("unlock failed", th); } catch (Throwable th) {
//try again log.error("unlock failed", th);
ipResourceRepository.unLockHealth(ipResource.getId()); //try again
} ipResourceRepository.unLockHealth(ipResource.getId());
} }
} }
}, ThreadPoolUtils.queryIpHealth); }
} }
} }
......
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