From d04aedbfddc90bb6e8d841e4e36cabbe88e99949 Mon Sep 17 00:00:00 2001 From: Cui YongXing <2835316714@qq.com> Date: Fri, 6 Sep 2024 09:41:48 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=BB=E6=89=BE=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../muyu/remote/feign/DatasourceFeign.java | 9 ++++- .../feign/Factory/DatasourceFeignFactory.java | 3 +- .../service/impl/TaskInfoServiceImpl.java | 40 +++++++++++++++---- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/cloud-task-remote/src/main/java/com/muyu/remote/feign/DatasourceFeign.java b/cloud-task-remote/src/main/java/com/muyu/remote/feign/DatasourceFeign.java index f360602..ae7c2e5 100644 --- a/cloud-task-remote/src/main/java/com/muyu/remote/feign/DatasourceFeign.java +++ b/cloud-task-remote/src/main/java/com/muyu/remote/feign/DatasourceFeign.java @@ -19,7 +19,10 @@ import java.util.List; @FeignClient(name = "cloud-etl-datasources", fallbackFactory = DatasourceFeignFactory.class) public interface DatasourceFeign { @PostMapping("/dataValue/findTableValueToArray") - public Result findTableValueToArray(@RequestParam("basicId") Long basicId,@RequestParam("sql") String sql); + public Result findTableValueToArray(@RequestParam("basicId") Long basicId, + @RequestParam("sql") String sql, + @RequestParam("one") Long one, + @RequestParam("two") Integer two); @PostMapping("/dataValue/findTableValue") public Result>> findTableValue(@RequestParam("basicId") Long basicId, @@ -30,7 +33,9 @@ public interface DatasourceFeign { @RequestParam("tableId") Long tableId, @RequestBody List> listList); @PostMapping("/product/addProduct") - public Result addProduct(@RequestParam("basicId") Long basicId, @RequestParam("tableId") Long tableId, @RequestBody DataValue[][] listList); + public Result addProduct(@RequestParam("basicId") Long basicId, + @RequestParam("tableId") Long tableId, + @RequestBody DataValue[][] listList); @PostMapping("/dataValue/findCount") public Result findCount(@RequestParam("basicId") Long basicId, diff --git a/cloud-task-remote/src/main/java/com/muyu/remote/feign/Factory/DatasourceFeignFactory.java b/cloud-task-remote/src/main/java/com/muyu/remote/feign/Factory/DatasourceFeignFactory.java index bd2e313..1ed3a14 100644 --- a/cloud-task-remote/src/main/java/com/muyu/remote/feign/Factory/DatasourceFeignFactory.java +++ b/cloud-task-remote/src/main/java/com/muyu/remote/feign/Factory/DatasourceFeignFactory.java @@ -17,8 +17,9 @@ public class DatasourceFeignFactory implements FallbackFactory return new DatasourceFeign() { + @Override - public Result findTableValueToArray(Long basicId, String sql) { + public Result findTableValueToArray(Long basicId, String sql, Integer one, Integer two) { log.info(e); return Result.error("网络开小差......"); } diff --git a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java index 2f521db..cc4f482 100644 --- a/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java +++ b/cloud-task-server/src/main/java/com/muyu/task/server/service/impl/TaskInfoServiceImpl.java @@ -247,12 +247,17 @@ public class TaskInfoServiceImpl extends ServiceImpl i String finalFieName = fieName; String finalJoint = joint; long count = data/PAGE_SIZE==0?1:data/PAGE_SIZE+1; + long pageSize; if (Weight.high.getValue().equals(weight)){ log.info("执行高级任务"); for (long i = 1; i <= count; i++) { long pageNum = (i - 1) * PAGE_SIZE; + pageSize = data - pageNum; + if (pageSize>=PAGE_SIZE){ + pageSize=PAGE_SIZE; + } submitHighPriorityTask(()->{ - getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,num); + getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,pageSize,num); }); } @@ -261,9 +266,12 @@ public class TaskInfoServiceImpl extends ServiceImpl i log.info("执行中级任务"); for (long i = 1; i <= count; i++) { long pageNum = (i - 1) * PAGE_SIZE; - System.out.println(pageNum); + pageSize = data - pageNum; + if (pageSize>=PAGE_SIZE){ + pageSize=PAGE_SIZE; + } submitMediumPriorityTask(()->{ - getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,num); + getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,pageSize,num); }); } } @@ -271,8 +279,12 @@ public class TaskInfoServiceImpl extends ServiceImpl i log.info("执行低级任务"); for (long i = 1; i <= count; i++) { long pageNum = (i - 1) * PAGE_SIZE; + pageSize = data - pageNum; + if (pageSize>=PAGE_SIZE){ + pageSize=PAGE_SIZE; + } submitLowPriorityTask(()->{ - getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,num); + getString(pageNum, finalFieName, finalJoint,basicId,newBasicId,tableId,map,pageSize,num); }); } } @@ -281,11 +293,15 @@ public class TaskInfoServiceImpl extends ServiceImpl i // 调整线程分配以适应紧急任务 OptimizedPrioritizedThreadPool.activeEmergencyTasks.set(0); OptimizedPrioritizedThreadPool.remainingTasks.set(0); - for (long i = 1; i <= count+1; i++) { + for (long i = 1; i <= count; i++) { long pageNum = (i - 1) * PAGE_SIZE; + pageSize = data - pageNum; + if (pageSize>=PAGE_SIZE){ + pageSize=PAGE_SIZE; + } submitEmergencyTask(()->{ try { - getString(pageNum, finalFieName, finalJoint, basicId, newBasicId, tableId, map, num); + getString(pageNum, finalFieName, finalJoint, basicId, newBasicId, tableId, map,pageSize, num); } finally { // 减少剩余任务计数 if (OptimizedPrioritizedThreadPool.remainingTasks.decrementAndGet() == 0) { @@ -304,12 +320,20 @@ public class TaskInfoServiceImpl extends ServiceImpl i @NotNull - private void getString(Long pageNum,String fieName,String joint,Long basicId,Long newBasicId,Long tableId,HashMap map ,Integer num) { + private void getString(Long pageNum, + String fieName, + String joint, + Long basicId, + Long newBasicId, + Long tableId, + HashMap map , + Long one, + Integer two) { String sqlSelect = " SELECT " + fieName + " FROM " + joint +" limit "+pageNum +","+PAGE_SIZE; log.info(sqlSelect); //log.info("执行{}查询的方法",sqlSelect); - Result tableValueResult = datasourceFeign.findTableValueToArray(basicId, sqlSelect); + Result tableValueResult = datasourceFeign.findTableValueToArray(basicId, sqlSelect,one,two); log.info(tableValueResult); DataValue[][] data = tableValueResult.getData(); log.info("执行{}查询的方法结束",sqlSelect);