中间件修改内容:
1、当没农业综合站时即没相关配置项目内容为空时,启动时会产生bug;
2、整理优化代码。
| | |
| | | ServerProperties.mqttAcceptDataMinInterval = conf.getSetAttrPlusInt(doc, "config.mqtt", "acceptDataMinInterval", null, 1, 720, null) * 60 * 1000L ; |
| | | |
| | | mqVo.useMemoryPersistence = conf.getSetAttrBoolean(doc, "config.mqtt", "useMemoryPersistence", null, null) ; |
| | | String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, false, null) ; |
| | | if(proAndDevIds == null || proAndDevIds.trim().equals("")){ |
| | | throw new Exception("config.mqtt.protocolAndDeviceIds配置不合法") ; |
| | | }else{ |
| | | String proAndDevIds = conf.getSetAttrTxt(doc, "config.mqtt", "protocolAndDeviceIds", null, true, null) ; |
| | | if(proAndDevIds != null && !proAndDevIds.trim().equals("")){ |
| | | proAndDevIds = proAndDevIds.trim() ; |
| | | proAndDevIds = proAndDevIds.replaceAll(",", ","); |
| | | proAndDevIds = proAndDevIds.replaceAll(";", ";"); |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, false, null) ; |
| | | if(subTopicAndQos == null || subTopicAndQos.trim().equals("")){ |
| | | throw new Exception("config.mqtt.subTopicAndQos配置的主题及Qos不合法") ; |
| | | }else{ |
| | | String subTopicAndQos = conf.getSetAttrTxt(doc, "config.mqtt", "subTopicAndQos", null, true, null) ; |
| | | if(subTopicAndQos != null && !subTopicAndQos.trim().equals("")){ |
| | | subTopicAndQos = subTopicAndQos.trim() ; |
| | | subTopicAndQos = subTopicAndQos.replaceAll(",", ","); |
| | | subTopicAndQos = subTopicAndQos.replaceAll(";", ";"); |
| | |
| | | throw new Exception("Mqtt连接池获得订阅连接不可用"); |
| | | } |
| | | subClients.add(clientSub) ; |
| | | |
| | | // 订阅主题 |
| | | if(this.configVo.subTopics != null && this.configVo.subTopics.length > 0){ |
| | | if(this.configVo.protocolAndDeviceIds != null || this.configVo.protocolAndDeviceIds.length > 0){ |
| | | for(int i = 0; i < this.configVo.subTopics.length; i++){ |
| | | for(int j = 0 ; j < this.configVo.protocolAndDeviceIds.length; j++){ |
| | | clientSub.subscribe(ServerProperties.orgTag + "/" |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void stop()throws Exception{ |
| | | if(subClients != null && subClients.size() > 0){ |
| | |
| | | public void callback(MqttSubMsg subMsg) { |
| | | DevStatusDealer.onLine(subMsg.deviceId, subMsg.protocol); |
| | | DevStatusDealer.afterReceiveSubMessage(subMsg.deviceId); |
| | | RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息 主题:" + subMsg.topic.longName() + " 元数据:" + subMsg.metaData); |
| | | RtuLogDealer.log4Mqtt(subMsg.deviceId, "订阅消息 主题:" + subMsg.topic.longName() + " 原数据:" + subMsg.metaData); |
| | | } |
| | | |
| | | @Override |
| | |
| | | private static final String JobGroupName = "VideoYsGroup" ; |
| | | private static final Integer ThreadPoolMaxCount = 1 ;//线程池线程最大个数 |
| | | private static final Integer ThreadPoolPriority = 5 ;//线程优先级 |
| | | private static final boolean quartzJobRunOneTimes = true ;//定时任务只执行一次 |
| | | |
| | | @Value("${video.ys.accessTokenExpireDay: 7}") |
| | | protected Integer accessTokenExpireDay;//AccessToken过期时间,单位天 |