diff --git a/src/main/java/com/iot/modbus_rtcp/config/EquipmentIPProperties.java b/src/main/java/com/iot/modbus_rtcp/config/EquipmentIPProperties.java
index 1280aab..27e5f8d 100644
--- a/src/main/java/com/iot/modbus_rtcp/config/EquipmentIPProperties.java
+++ b/src/main/java/com/iot/modbus_rtcp/config/EquipmentIPProperties.java
@@ -36,6 +36,8 @@ public class EquipmentIPProperties {
if (gatewayHeartbeat.length() > 100) {
return false;
}
+ // 解决心跳包中可能存在的空格符和换行符
+ gatewayHeartbeat = HexUtil.bytesToHexString(StringUtils.trim(new String(HexUtil.hexStringToBytes(gatewayHeartbeat))).getBytes()).toUpperCase();
// 每分钟从数据库入库一次
if (this.lastSyncEquipment.getAcquire() < System.currentTimeMillis() - 60_000) {
this.jdbcTemplate.queryForList("select gateway_sn from device").forEach(map -> {
diff --git a/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java b/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
index 4e2ff2d..702e837 100644
--- a/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
+++ b/src/main/java/com/iot/modbus_rtcp/jobs/AutoCollectJobs.java
@@ -22,6 +22,7 @@ import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.Collectors;
+import java.util.stream.Stream;
/**
* @author 王仕龙
@@ -66,10 +67,10 @@ public class AutoCollectJobs {
private final JdbcTemplate jdbcTemplate;
private final ModbusTCPController controller;
private final EquipmentIPProperties equipmentIPProperties;
- private final ThreadPoolExecutor collectThreadPool = new ThreadPoolExecutor(Math.min(10, Runtime.getRuntime().availableProcessors())
+ private final ThreadPoolExecutor collectThreadPool = new ThreadPoolExecutor(Math.min(50, Runtime.getRuntime().availableProcessors())
, Math.min(100, Runtime.getRuntime().availableProcessors()), 60, TimeUnit.SECONDS,
new ArrayBlockingQueue<>(5000), new ThreadFactory() {
- AtomicInteger index = new AtomicInteger(1);
+ final AtomicInteger index = new AtomicInteger(1);
@Override
public Thread newThread(Runnable runnable) {
@@ -85,53 +86,86 @@ public class AutoCollectJobs {
int pageIndex = 0;
int pageSize = 1000;
long timestamp = System.currentTimeMillis();
- List