From f4b9fae646f8d6c2c7e857892b0c965c6c611cda Mon Sep 17 00:00:00 2001
From: 55007 <55007@maojian>
Date: Tue, 7 Jan 2025 18:04:18 +0800
Subject: [PATCH] =?UTF-8?q?=E9=87=87=E9=9B=86=E5=B9=B3=E5=8F=B0=E5=BA=94?=
=?UTF-8?q?=E7=94=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 33 ++
README.md | 1 +
pom.xml | 124 ++++++
.../crawl/handlerdata/HandlerDataApplication.java | 30 ++
.../com/bfd/crawl/handlerdata/bean/Constants.java | 54 +++
.../com/bfd/crawl/handlerdata/bean/ResponsePo.java | 59 +++
.../config/AsyncThreadConfiguration.java | 48 +++
.../crawl/handlerdata/config/SchedulerConfig.java | 25 ++
.../crawl/handlerdata/config/ZookeeperConfig.java | 25 ++
.../controller/HandlerDataController.java | 58 +++
.../bfd/crawl/handlerdata/enums/ResponseCode.java | 32 ++
.../exception/GlobalExceptionHandler.java | 31 ++
.../handlerdata/service/ElasticSearchService.java | 424 +++++++++++++++++++++
.../crawl/handlerdata/service/HandlerService.java | 115 ++++++
.../bfd/crawl/handlerdata/service/SendService.java | 46 +++
.../crawl/handlerdata/service/StartServcie.java | 67 ++++
.../bfd/crawl/handlerdata/service/TaskService.java | 42 ++
.../handlerdata/service/ZookeeperNodeMonitor.java | 64 ++++
.../util/CronExpressionGeneratorUtil.java | 73 ++++
.../com/bfd/crawl/handlerdata/util/QueueUtil.java | 19 +
.../com/bfd/crawl/handlerdata/util/StringUtil.java | 94 +++++
src/main/resources/application.yml | 59 +++
src/main/resources/logback-spring.xml | 39 ++
23 files changed, 1562 insertions(+)
create mode 100644 .gitignore
create mode 100644 README.md
create mode 100644 pom.xml
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/HandlerDataApplication.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/bean/Constants.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/bean/ResponsePo.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/config/AsyncThreadConfiguration.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/config/SchedulerConfig.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/config/ZookeeperConfig.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/controller/HandlerDataController.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/enums/ResponseCode.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/exception/GlobalExceptionHandler.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/ElasticSearchService.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/HandlerService.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/SendService.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/StartServcie.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/TaskService.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/service/ZookeeperNodeMonitor.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/util/CronExpressionGeneratorUtil.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/util/QueueUtil.java
create mode 100644 src/main/java/com/bfd/crawl/handlerdata/util/StringUtil.java
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/logback-spring.xml
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..549e00a
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,33 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..abd343a
--- /dev/null
+++ b/README.md
@@ -0,0 +1 @@
+采集平台应用
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..97acfde
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,124 @@
+
+
+ 4.0.0
+ com.bfd.crawl
+ handlerData
+ 0.0.1-SNAPSHOT
+ handlerData
+ handlerData
+
+ 1.8
+ UTF-8
+ UTF-8
+ 2.2.4.RELEASE
+
+
+
+ de.codecentric
+ spring-boot-admin-client
+ 2.2.4
+
+
+ com.google.code.gson
+ gson
+ 2.8.8
+
+
+
+
+
+
+ org.springframework.kafka
+ spring-kafka
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+ com.alibaba
+ fastjson
+ 1.2.0
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 3.9.1
+
+
+
+
+
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+
+
+
+ org.springframework.kafka
+ spring-kafka-test
+ test
+
+
+ org.apache.kafka
+ kafka-clients
+ 2.3.1
+
+
+ com.bfd.util
+ pauseTool
+ 1.0
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-dependencies
+ ${spring-boot.version}
+ pom
+ import
+
+
+
+
+
+ handlerData-0.0.1-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+ 2.4.1
+
+ true
+
+
+
+
+ repackage
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 8
+ 8
+
+
+
+
+
+
diff --git a/src/main/java/com/bfd/crawl/handlerdata/HandlerDataApplication.java b/src/main/java/com/bfd/crawl/handlerdata/HandlerDataApplication.java
new file mode 100644
index 0000000..1e37371
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/HandlerDataApplication.java
@@ -0,0 +1,30 @@
+package com.bfd.crawl.handlerdata;
+
+import de.codecentric.boot.admin.client.registration.Application;
+import de.codecentric.boot.admin.client.registration.ApplicationRegistrator;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.event.ApplicationReadyEvent;
+import org.springframework.context.event.EventListener;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.stereotype.Component;
+/**
+ * @author:jinming
+ * @className:HandlerDataApplication
+ * @version:1.0
+ * @description:
+ * @Date:2023/7/31 17:14
+ */
+@SpringBootApplication
+@EnableAsync
+@EnableScheduling
+public class HandlerDataApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(HandlerDataApplication.class, args);
+
+ }
+
+}
diff --git a/src/main/java/com/bfd/crawl/handlerdata/bean/Constants.java b/src/main/java/com/bfd/crawl/handlerdata/bean/Constants.java
new file mode 100644
index 0000000..2c1c628
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/bean/Constants.java
@@ -0,0 +1,54 @@
+package com.bfd.crawl.handlerdata.bean;
+
+/**
+ * @author:jinming
+ * @className:Constants
+ * @version:1.0
+ * @description:
+ * @Date:2023/7/14 10:41
+ */
+public class Constants {
+ /**
+ * 查询数据时间
+ */
+ public static String TIME = "pubTime";
+
+ /**
+ * 查询数据开始时间
+ */
+ public static String START_TIME = "gte";
+
+ /**
+ * 查询数据结束时间
+ */
+ public static String END_TIME = "lte";
+
+ /**
+ * 查询排除词
+ */
+ public static String OR = "or";
+
+ /**
+ * 查询数据开始时间
+ */
+ public static String TITLE = "title";
+ /**
+ * 查询数据开始时间
+ */
+ public static String AUTHOR = "author";
+ /**
+ * 查询数据开始时间
+ */
+ public static String CONTENT = "content";
+ /**
+ * 查询数据开始时间
+ */
+ public static String TYPE = "type";
+
+ /**
+ * 查询数据开始时间
+ */
+ public static final String INCLUDE = "include";
+ public static final String EXCLUSION = "exclusion";
+ public static final String ATTACHMENTFILTER = "attachmentFilter";
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/bean/ResponsePo.java b/src/main/java/com/bfd/crawl/handlerdata/bean/ResponsePo.java
new file mode 100644
index 0000000..b0ec9df
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/bean/ResponsePo.java
@@ -0,0 +1,59 @@
+package com.bfd.crawl.handlerdata.bean;
+
+
+import com.bfd.crawl.handlerdata.enums.ResponseCode;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * @author:jinming
+ * @className:ResponsePo
+ * @version:1.0
+ * @description:
+ * @Date:2023/4/3 17:23
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class ResponsePo {
+ /**
+ * 响应码
+ */
+ private int code;
+
+ /**
+ * 正常放 返回数据 的JSON串
+ */
+ private Object data;
+
+ /**
+ * 提示消息
+ */
+ private String message;
+
+ public static ResponsePo success() {
+ return setStatus(ResponseCode.SUCCESS.getCode(), ResponseCode.SUCCESS.getMessage());
+ }
+
+ public static ResponsePo error() {
+ return setStatus(ResponseCode.FAILURE.getCode(), ResponseCode.FAILURE.getMessage());
+ }
+
+ public static ResponsePo setStatus(int code, String message) {
+ ResponsePo resultBean = new ResponsePo();
+ resultBean.code = code;
+ resultBean.message = message;
+ return resultBean;
+ }
+ public ResponsePo(int code, String message) {
+ this.code = code;
+ this.message = message;
+ this.data = data;
+ }
+ public ResponsePo(ResponseCode responseCode){
+ this.code = responseCode.getCode();
+ this.message = responseCode.getMessage();
+ this.data = data;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/config/AsyncThreadConfiguration.java b/src/main/java/com/bfd/crawl/handlerdata/config/AsyncThreadConfiguration.java
new file mode 100644
index 0000000..a9adabc
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/config/AsyncThreadConfiguration.java
@@ -0,0 +1,48 @@
+package com.bfd.crawl.handlerdata.config;
+
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+
+import java.util.concurrent.Executor;
+
+/**
+ * @author jinming
+ * @version 1.0
+ * @className AsyncThreadConfiguration
+ * @Date 2022/2/17 18:37
+ */
+@Configuration
+@EnableAsync
+public class AsyncThreadConfiguration {
+ @Bean(name = "asyncExecutor")
+ public Executor asyncExecutor() {
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ // 核心线程数
+ executor.setCorePoolSize(500);
+ // 并发线程的数量限制为2
+ executor.setMaxPoolSize(500);
+ // 线程队列
+ executor.setQueueCapacity(500);
+ executor.setThreadNamePrefix("handlerData-");
+ executor.initialize();
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ return executor;
+ }
+ @Bean(name = "sendExecutor")
+ public Executor sendExecutor() {
+ ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
+ // 核心线程数
+ executor.setCorePoolSize(500);
+ // 并发线程的数量限制为2
+ executor.setMaxPoolSize(500);
+ // 线程队列
+ executor.setQueueCapacity(500);
+ executor.setThreadNamePrefix("sendData-");
+ executor.initialize();
+ executor.setWaitForTasksToCompleteOnShutdown(true);
+ return executor;
+ }
+}
diff --git a/src/main/java/com/bfd/crawl/handlerdata/config/SchedulerConfig.java b/src/main/java/com/bfd/crawl/handlerdata/config/SchedulerConfig.java
new file mode 100644
index 0000000..d465009
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/config/SchedulerConfig.java
@@ -0,0 +1,25 @@
+package com.bfd.crawl.handlerdata.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
+
+/**
+ * @author:jinming
+ * @className:SchedulerConfig
+ * @version:1.0
+ * @description:
+ * @Date:2024/7/10 17:21
+ */
+@Configuration
+public class SchedulerConfig {
+
+ @Bean
+ public ThreadPoolTaskScheduler taskScheduler() {
+ ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();
+ scheduler.setPoolSize(300);
+ scheduler.setThreadNamePrefix("task-");
+ scheduler.initialize();
+ return scheduler;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/config/ZookeeperConfig.java b/src/main/java/com/bfd/crawl/handlerdata/config/ZookeeperConfig.java
new file mode 100644
index 0000000..f26731e
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/config/ZookeeperConfig.java
@@ -0,0 +1,25 @@
+package com.bfd.crawl.handlerdata.config;
+
+import org.apache.curator.framework.CuratorFramework;
+import org.apache.curator.framework.CuratorFrameworkFactory;
+import org.apache.curator.retry.ExponentialBackoffRetry;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * @author jian.mao
+ * @date 2024年4月16日
+ * @description
+ */
+@Configuration
+public class ZookeeperConfig {
+ @Value("${zookeeper.connection-string}")
+ private String connectionString;
+ @Bean
+ public CuratorFramework curatorFramework() {
+ CuratorFramework curatorFramework = CuratorFrameworkFactory.newClient(connectionString, new ExponentialBackoffRetry(1000, 3));
+ curatorFramework.start();
+ return curatorFramework;
+ }
+}
diff --git a/src/main/java/com/bfd/crawl/handlerdata/controller/HandlerDataController.java b/src/main/java/com/bfd/crawl/handlerdata/controller/HandlerDataController.java
new file mode 100644
index 0000000..d4732ca
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/controller/HandlerDataController.java
@@ -0,0 +1,58 @@
+package com.bfd.crawl.handlerdata.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.bfd.crawl.handlerdata.bean.ResponsePo;
+import com.bfd.crawl.handlerdata.enums.ResponseCode;
+import com.bfd.crawl.handlerdata.util.QueueUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author:jinming
+ * @className:HandlerDataController
+ * @version:1.0
+ * @description: 处理接口
+ * @Date:2023/7/13 14:25
+ */
+
+@RestController
+@RequestMapping("/handlerdata")
+@Slf4j
+public class HandlerDataController {
+
+ @PostMapping("/handler")
+ public ResponsePo documentFeedback(@RequestBody String dataJson) {
+ String trace = "trace";
+ ResponsePo responsePo = ResponsePo.success();
+ try {
+ Map parse = (Map) JSON.parse(dataJson);
+ log.info("新增任务:" + dataJson);
+ if (parse.containsKey(trace) && (Boolean) parse.get(trace) == true) {
+ log.info("测试流程,插入队首");
+ QueueUtil.taskQueue.putFirst(dataJson);
+ } else {
+ QueueUtil.taskQueue.put(dataJson);
+ }
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ log.error("任务添加队列异常" + e.getMessage());
+ responsePo.setCode(ResponseCode.INTERNAL_SERVER_ERROR.getCode());
+ responsePo.setMessage(ResponseCode.INTERNAL_SERVER_ERROR.getMessage());
+ return responsePo;
+ } catch (Exception e) {
+ log.error("请求格式发生异常" + e.getMessage());
+ responsePo.setCode(ResponseCode.FAILURE.getCode());
+ responsePo.setMessage(ResponseCode.FAILURE.getMessage());
+ return responsePo;
+ }
+ return responsePo;
+ }
+
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/enums/ResponseCode.java b/src/main/java/com/bfd/crawl/handlerdata/enums/ResponseCode.java
new file mode 100644
index 0000000..f4db196
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/enums/ResponseCode.java
@@ -0,0 +1,32 @@
+package com.bfd.crawl.handlerdata.enums;
+
+/**
+ * @author:jinming
+ * @className:ResponseCodeEnum
+ * @version:1.0
+ * @description:响应结果码枚举类
+ * @Date:2023/2/28 11:40
+ */
+public enum ResponseCode {
+ //返回结果码枚举类
+ SUCCESS(200, "操作成功"),
+ FAILURE(400, "参数错误"),
+ INTERNAL_SERVER_ERROR(500, "服务器内部错误"),
+ TYPE_NOT_SUPPORT(601,"文件类型不支持");
+
+ private int code;
+ private String message;
+
+ ResponseCode(int code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/exception/GlobalExceptionHandler.java b/src/main/java/com/bfd/crawl/handlerdata/exception/GlobalExceptionHandler.java
new file mode 100644
index 0000000..c361bf9
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/exception/GlobalExceptionHandler.java
@@ -0,0 +1,31 @@
+package com.bfd.crawl.handlerdata.exception;
+
+
+import com.bfd.crawl.handlerdata.bean.ResponsePo;
+import com.bfd.crawl.handlerdata.enums.ResponseCode;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+
+/**
+ * @author:jinming
+ * @className:GlobalExceptionHandler
+ * @version:1.0
+ * @description: 异常处理类
+ * @Date:2023/2/28 16:29
+ */
+@RestControllerAdvice
+public class GlobalExceptionHandler {
+
+ @ExceptionHandler(value = {IllegalArgumentException.class})
+ @ResponseStatus(HttpStatus.BAD_REQUEST)
+ public ResponsePo handleBadRequest(Exception ex) {
+ return new ResponsePo(ResponseCode.FAILURE.getCode(), ex.getMessage());
+ }
+ @ExceptionHandler(value = {Exception.class})
+ @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
+ public ResponsePo handleException(Exception ex) {
+ return new ResponsePo(ResponseCode.INTERNAL_SERVER_ERROR.getCode(), ex.getMessage());
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/com/bfd/crawl/handlerdata/service/ElasticSearchService.java b/src/main/java/com/bfd/crawl/handlerdata/service/ElasticSearchService.java
new file mode 100644
index 0000000..991a168
--- /dev/null
+++ b/src/main/java/com/bfd/crawl/handlerdata/service/ElasticSearchService.java
@@ -0,0 +1,424 @@
+package com.bfd.crawl.handlerdata.service;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.bfd.crawl.handlerdata.bean.Constants;
+import com.bfd.crawl.handlerdata.util.QueueUtil;
+import com.bfd.crawl.handlerdata.util.StringUtil;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import lombok.extern.slf4j.Slf4j;
+import okhttp3.*;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.data.redis.core.StringRedisTemplate;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.io.IOException;
+import java.util.*;
+
+/**
+ * @author:jinming
+ * @className:ElasticSearchService
+ * @version:1.0
+ * @description:
+ * @Date:2024/7/10 18:04
+ */
+@Service
+@Slf4j
+public class ElasticSearchService {
+ @Value("${thread.sleep}")
+ private int sleepTimes;
+
+ @Resource
+ private StringRedisTemplate stringRedisTemplate;
+
+ public void performQuery(Map parse) throws Exception {
+ String errorMessage = "";
+ Gson gson = new GsonBuilder().serializeNulls().create();
+ try {
+
+ OkHttpClient client = new OkHttpClient().newBuilder()
+ .build();
+ int id = (int) parse.get("id");
+ int scenesId = (int) parse.get("scenes_id");
+ Map admin = (Map) parse.get("input");
+ List taskIds = (List) admin.get("taskId");
+ String indexs = admin.get("Index").toString();
+ String host = (String) admin.get("host");
+ String port = (String) admin.get("port");
+ String requestUrl = "http://";
+ requestUrl = requestUrl.concat("172.26.250.44").concat(":").concat("9200").concat("/");
+ String scoreUrl = requestUrl.concat("_search/scroll");
+ requestUrl = requestUrl.concat("cl_special_1.0_").concat(indexs).concat("/_search?scroll=5m");
+ int index = 1;
+ int dataIndex = 1;
+ int total = 0;
+ String scrollId = "";
+ log.info("任务ID:" + id + "的查询连接为:" + requestUrl);
+ //总数据量统计
+ int allDataTotal = 0;
+ for (String taskId : taskIds) {
+ String queryQl = makeQueryQl(admin, index, String.valueOf(scenesId), taskId);
+ log.info("任务ID:" + id + "采集平台任务ID:" + taskId + "的查询条件为:" + queryQl);
+ allDataTotal += getDataTotal(requestUrl, queryQl);
+ }
+ log.info("任务ID:" + id + "的总数据量为:" + allDataTotal + "共需要查询" + Math.ceil(allDataTotal / 500f) + "次");
+ for (String taskId : taskIds) {
+ index = 1;
+ total = 0;
+ try {
+ String queryQl = null;
+ try {
+ queryQl = makeQueryQl(admin, index, String.valueOf(scenesId), taskId);
+ } catch (Exception e) {
+ e.printStackTrace();
+ errorMessage = "查询语句组装失败";
+ }
+ if (total == 0) {
+ total = getDataTotal(requestUrl, queryQl);
+ }
+ log.info("任务ID:" + id + "采集平台任务ID:" + taskId + "的查询条件为:" + queryQl);
+ log.info("任务ID:" + id + "采集平台任务ID:" + taskId + "的总数据量为:" + total + "共需要查询" + Math.ceil(total / 500f) + "次");
+ MediaType mediaType = MediaType.parse("application/json");
+ RequestBody body = RequestBody.create(mediaType, queryQl);
+ Request firstRequest = new Request.Builder()
+ .url(requestUrl)
+ .method("POST", body)
+ .addHeader("Authorization", "Basic ZWxhc3RpYzpiYWlmZW5kaWFuMTIz")
+ .addHeader("Content-Type", "application/json")
+ .build();
+ String firstResultString = null;
+ try {
+ Response firstResponse = client.newCall(firstRequest).execute();
+ firstResultString = firstResponse.body().string();
+ } catch (IOException e) {
+ e.printStackTrace();
+ errorMessage = "ES 链接失败";
+ }
+ Map resultParse = (Map) JSON.parse(firstResultString);
+ scrollId = (String) resultParse.get("_scroll_id");
+ Map hitsMap = (Map) resultParse.get("hits");
+ List