src/main/java/com/whyc/factory/ThreadPoolExecutorFactory.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/mapper/RtEnvirmentMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/pojo/RtEnvirment.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/service/RtEnvirmentService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/main/java/com/whyc/webSocket/BattSocket.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/main/java/com/whyc/factory/ThreadPoolExecutorFactory.java
@@ -10,7 +10,7 @@ private static ThreadPoolExecutor init() { //线程池初始化,拒绝策略为丢弃 UserThreadFactory userThreadFactory = new UserThreadFactory("SNMP"); UserThreadFactory userThreadFactory = new UserThreadFactory("br"); ThreadPoolExecutor pool = new ThreadPoolExecutor(8, 48, 10, TimeUnit.SECONDS, new LinkedBlockingDeque<>(16), userThreadFactory,new ThreadPoolExecutor.AbortPolicy()); poolExecutor = pool; return pool; src/main/java/com/whyc/mapper/RtEnvirmentMapper.java
New file @@ -0,0 +1,6 @@ package com.whyc.mapper; import com.whyc.pojo.RtEnvirment; public interface RtEnvirmentMapper extends CustomMapper<RtEnvirment>{ } src/main/java/com/whyc/pojo/RtEnvirment.java
New file @@ -0,0 +1,39 @@ package com.whyc.pojo; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import java.util.Date; @Data @AllArgsConstructor @NoArgsConstructor @ToString @ApiModel(value="环境实时数据", description="") @TableName(schema = "db_real_batt",value = "rt_envirment") public class RtEnvirment { @TableField("num") @ApiModelProperty("主键编号") private Integer num; @TableField("tmp") @ApiModelProperty("温度") private Integer tmp; @TableField("record_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty("记录时间") private Date recordTime; @TableField("hmy") @ApiModelProperty("湿度") private Integer hmy; } src/main/java/com/whyc/service/RtEnvirmentService.java
New file @@ -0,0 +1,27 @@ package com.whyc.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.whyc.dto.Response; import com.whyc.mapper.RtEnvirmentMapper; import com.whyc.pojo.RtEnvirment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.management.Query; @Service public class RtEnvirmentService { @Autowired(required = false) private RtEnvirmentMapper mapper; /* 实时环境数据 **/ public Response getResRtEnvir() { QueryWrapper wrapper= Wrappers.query(); wrapper.select("limti 1"); RtEnvirment rtEnvir=mapper.selectOne(wrapper); return new Response().setII(1,rtEnvir!=null,rtEnvir," 实时环境数据"); } } src/main/java/com/whyc/webSocket/BattSocket.java
@@ -5,10 +5,7 @@ import com.whyc.factory.ThreadPoolExecutorFactory; import com.whyc.pojo.RtState; import com.whyc.pojo.StationInf; import com.whyc.service.BattAlarmService; import com.whyc.service.BattInfService; import com.whyc.service.RtDataService; import com.whyc.service.RtStateService; import com.whyc.service.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -43,7 +40,6 @@ private volatile Map<String, Thread> threadMap = new HashMap<>(); private volatile Map<Long, Boolean> threadFlagMap = new HashMap<>(); private static final int executeTime = 5000; @@ -52,6 +48,8 @@ private static RtDataService rtDataService; private static BattAlarmService battAlarmService; private static RtEnvirmentService rtEnvirmentService; @Autowired @@ -69,6 +67,11 @@ BattSocket.battAlarmService = battAlarmService; } @Autowired public void setRtEnvirmentService(RtEnvirmentService rtEnvirmentService) { BattSocket.rtEnvirmentService = rtEnvirmentService; } @OnOpen public void onOpen(Session session) { this.session = session; @@ -84,7 +87,7 @@ Map<String, Object> res = new HashMap<>(); while (!currentThread().isInterrupted()) { ThreadPoolExecutor poolExecutor = ThreadPoolExecutorFactory.getPoolExecutor(); CountDownLatch latch = new CountDownLatch(3); CountDownLatch latch = new CountDownLatch(4); poolExecutor.execute(() -> { Response resRtState = rtStateService.getResRtState(binfId); res.put("resRtState", resRtState); @@ -100,6 +103,11 @@ res.put("resBattAlm", resBattAlm); latch.countDown(); }); poolExecutor.execute(() -> { Response resRtEnvir = rtEnvirmentService.getResRtEnvir(); res.put("resRtEnvir", resRtEnvir); latch.countDown(); }); latch.await(10, TimeUnit.MINUTES); session.getBasicRemote().sendObject(new Response().set(1, res)); sleep(executeTime);