diff --git a/gather-broker/pom.xml b/gather-broker/pom.xml index 9695ba7..d3d3ea0 100644 --- a/gather-broker/pom.xml +++ b/gather-broker/pom.xml @@ -91,7 +91,7 @@ org.eclipse.paho org.eclipse.paho.client.mqttv3 - 1.1.0 + 1.2.0 diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java index 07f671b..5445b00 100644 --- a/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java +++ b/gather-broker/src/main/java/com/idtgz/service/impl/CenterServiceImpl.java @@ -83,9 +83,12 @@ public class CenterServiceImpl implements CenterService { public void reconnected() { if (!this.isConnected()) { try { - mqttClientService.getClient().reconnect(); - } catch (MqttException e) { + if (!mqttClientService.reconnect()) { + log.error("Mqtt重连失败"); + } + } catch (Exception e) { log.error("Mqtt重连失败:{}", e.getMessage()); + return; } } } diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java index 2679cab..5a8bdba 100644 --- a/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java +++ b/gather-broker/src/main/java/com/idtgz/service/impl/ConnectionServiceImpl.java @@ -362,7 +362,7 @@ public class ConnectionServiceImpl extends ServiceImpl().eq("connection_id", connectionEntity.getId())); - + BuffContext.itemBuff.get(connectionEntity.getDeviceId()).clear(); List itemEntities = new ArrayList<>(); items.forEach( i -> { @@ -504,20 +504,21 @@ public class ConnectionServiceImpl extends ServiceImpl= 60) { - corn = "0 0" + "0/" + uploadcycle / 60 + " * * ?"; - trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build(); - } + + String corn = null; + if (uploadType == 0) { + trigger = TriggerBuilder.newTrigger().withSchedule(SimpleScheduleBuilder.repeatSecondlyForever(uploadcycle)).build(); + } else if (uploadType == 1 && uploadcycle < 60) { + corn = "0 " + "0/" + uploadcycle + " * * * ?"; + trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build(); + } else if (uploadType == 1 && uploadcycle >= 60) { + corn = "0 0" + "0/" + uploadcycle / 60 + " * * ?"; + trigger = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule(corn)).build(); } + QuartzContext.jobs.put(deviceId, jobDetail); QuartzContext.triggers.put(deviceId, trigger); if (status == 1) { diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java index f073a68..45c22e5 100644 --- a/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java +++ b/gather-broker/src/main/java/com/idtgz/service/impl/MqttClientServiceImpl.java @@ -48,13 +48,13 @@ public class MqttClientServiceImpl implements MqttClientService { @Autowired ClientService clientService; + MqttConnectOptions options = new MqttConnectOptions(); + @Override public Boolean init(String host, Integer port, String username, String password, String clientId, MqttCallback publishCallBack, List sTopic, int qos) { try { host = "tcp://" + host + ":" + port; client = new MqttClient(host, clientId); - MqttConnectOptions options; - options = new MqttConnectOptions(); options.setCleanSession(true); options.setKeepAliveInterval(10); options.setConnectionTimeout(50); @@ -109,11 +109,11 @@ public class MqttClientServiceImpl implements MqttClientService { if (!client.isConnected()) { client.reconnect(); } + return client.isConnected(); } catch (Exception e) { log.error("Mqtt客户端重连失败:{}", e.getMessage()); return false; } - return true; } @Override diff --git a/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java b/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java index 71ac5a4..20af191 100644 --- a/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java +++ b/gather-broker/src/main/java/com/idtgz/service/impl/MqttInfoServiceImpl.java @@ -206,8 +206,18 @@ public class MqttInfoServiceImpl implements MqttInfoService { ConfigContext.items.get(connectionEntity.getDeviceId()).put(connectionItemEntity.getItemCode(), connectionItemEntity); } } + + //点位同步 if (CollectionUtils.isNotEmpty(i.getItems())) { connectionItemService.remove(new QueryWrapper().eq("connection_id", connectionEntity.getId()).notIn("item_code", i.getItems())); + Map buffMap = BuffContext.itemBuff.get(connectionEntity.getDeviceId()); + if (CollectionUtils.isNotEmpty(buffMap)) { + for (String itemCode : buffMap.keySet()) { + if (!i.getItems().contains(itemCode)) { + buffMap.remove(itemCode); + } + } + } } } } diff --git a/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class index 8256223..2125e9d 100644 Binary files a/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/CenterServiceImpl.class differ diff --git a/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class index ba69263..273b61b 100644 Binary files a/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/ConnectionServiceImpl.class differ diff --git a/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class index d65b999..1f70d97 100644 Binary files a/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/MqttClientServiceImpl.class differ diff --git a/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class b/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class index b015fb4..15c09c6 100644 Binary files a/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class and b/gather-broker/target/classes/com/idtgz/service/impl/MqttInfoServiceImpl.class differ