From 12c0bb25a0540d97e7c3348e31c9b25a62495390 Mon Sep 17 00:00:00 2001 From: whyclxw <810412026@qq.com> Date: 星期六, 21 九月 2024 14:46:08 +0800 Subject: [PATCH] 测试修改 --- src/main/java/com/whyc/service/DevA200TestparamService.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 108 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/whyc/service/DevA200TestparamService.java b/src/main/java/com/whyc/service/DevA200TestparamService.java index f575358..f0a746e 100644 --- a/src/main/java/com/whyc/service/DevA200TestparamService.java +++ b/src/main/java/com/whyc/service/DevA200TestparamService.java @@ -6,6 +6,7 @@ import com.whyc.dto.A200ResDto; import com.whyc.dto.Response; import com.whyc.dto.ResultA200Dto; +import com.whyc.factory.ThreadPoolExecutorFactory; import com.whyc.mapper.DevA200TestparamMapper; import com.whyc.mapper.DevInfMapper; import com.whyc.pojo.db_lithium_ram_db.DevA200Testparam; @@ -23,6 +24,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; @Service public class DevA200TestparamService { @@ -57,10 +61,10 @@ } - //璁剧疆a200鍧囪 浠弬鏁� - public Object setA200Param(A200ResDto param,int devId) { + //璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200Param(A200ResDto param) { QueryWrapper wrapper=new QueryWrapper(); - wrapper.eq("dev_id",devId); + wrapper.eq("dev_id",param.getDevId()); wrapper.last("limit 1"); DevInf dinf=dinfMapper.selectOne(wrapper); String url="http://"+dinf.getDevIp()+":8080/webService/setTestParameter"; @@ -68,11 +72,47 @@ MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); String paramJson=JSONObject.toJSONString(param); paramMap.add("testParameter",paramJson); - ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap); + ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_dataA200(restTemplate,url,paramMap); return dto; } - //鍚姩a200鍧囪 浠斁鐢�/鍏呯數 + //鎵归噺璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200ParamPl2(A200ResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(size); + for (int i=0;i<size;i++) { + int finaldevId=param.getDevIds().get(i); + poolExecutor.execute(() -> { + int finalIIdevId=finaldevId; + param.setDevId(finalIIdevId); + ResultA200Dto dto= (ResultA200Dto) setA200Param(param); + map.put(finalIIdevId,dto); + latch.countDown(); + }); + } + latch.await(4, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆a200涓�浣撴満鍙傛暟"); + } + //鎵归噺璁剧疆a200涓�浣撴満鍙傛暟 + public Object setA200ParamPl(A200ResDto param) { + Map<Integer,Object> map=new HashMap<>(); + int size=param.getDevIds().size(); + for (int i=0;i<size;i++) { + int finaldevId=param.getDevIds().get(i); + param.setDevId(finaldevId); + ResultA200Dto dto= (ResultA200Dto) setA200Param(param); + map.put(finaldevId,dto); + } + return new Response().setII(1,true,map,"鎵归噺璁剧疆a200涓�浣撴満鍙傛暟"); + } + + //鍚姩a200涓�浣撴満鏀剧數/鍏呯數 public Object startA200Param(int devId,int type) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("dev_id",devId); @@ -82,10 +122,10 @@ //灏嗚姹傚ご閮ㄥ拰鍙傛暟鍚堟垚涓�涓姹� MultiValueMap<String, Object> paramMap = new LinkedMultiValueMap<>(); paramMap.add("testType",type); - ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_data(restTemplate,url,paramMap); + ResultA200Dto dto= (ResultA200Dto) TestparamHttpUtil.postforform_dataA200(restTemplate,url,paramMap); return dto; } - //鍋滄a200鍧囪 浠斁鐢�/鍏呯數 + //鍋滄a200涓�浣撴満鏀剧數/鍏呯數 public Object stopA200Param(int devId) { QueryWrapper wrapper=new QueryWrapper(); wrapper.eq("dev_id",devId); @@ -97,9 +137,67 @@ return dto; } - //鎵归噺鎺у埗a200鍧囪 浠� - public Response controllA200ParamPl(List<Integer> devIds) { - return new Response().set(1,true,"鎵归噺鎺у埗a200鍧囪 浠�"); + //鎵归噺鍚姩a200涓�浣撴満 + public Response startA200ParamPl2(List<Integer> devIds,int type) { + Map<Integer,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(devIds.size()); + for (int devId:devIds) { + poolExecutor.execute(() -> { + ResultA200Dto dto= (ResultA200Dto) startA200Param(devId,type); + map.put(devId,dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().set(1,true,"鎵归噺鎺у埗a200涓�浣撴満"); + } + + //鎵归噺鍚姩a200涓�浣撴満 + public Response startA200ParamPl(List<Integer> devIds,int type) { + Map<Integer,Object> map=new HashMap<>(); + for (int devId:devIds) { + ResultA200Dto dto= (ResultA200Dto) startA200Param(devId,type); + UpdateWrapper wrapper=new UpdateWrapper(); + wrapper.eq("dev_id",devId); + wrapper.set("batch_state",1); + dinfMapper.update(null,wrapper); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鎺у埗a200涓�浣撴満"); + } + + //鎵归噺鍋滄a200涓�浣撴満 + public Response stopA200ParamPl2(List<Integer> devIds) { + Map<Integer,Object> map=new HashMap<>(); + try { + ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); + CountDownLatch latch = new CountDownLatch(devIds.size()); + for (int devId:devIds) { + poolExecutor.execute(() -> { + ResultA200Dto dto= (ResultA200Dto) stopA200Param(devId); + map.put(devId,dto); + latch.countDown(); + }); + } + latch.await(10, TimeUnit.MINUTES); + } catch (InterruptedException e) { + e.printStackTrace(); + } + return new Response().set(1,true,"鎵归噺鍋滄a200涓�浣撴満"); + } + //鎵归噺鍋滄a200涓�浣撴満 + public Response stopA200ParamPl(List<Integer> devIds) { + Map<Integer,Object> map=new HashMap<>(); + for (int devId:devIds) { + ResultA200Dto dto= (ResultA200Dto) stopA200Param(devId); + map.put(devId,dto); + } + return new Response().setII(1,true,map,"鎵归噺鍋滄a200涓�浣撴満"); } //灏哾to鎷疯礉鑷硃aram -- Gitblit v1.9.1