Browse Source

优化非机预警重连机制

develop
zhaoxianglong 7 months ago
parent
commit
9bb396b8a4
  1. 37
      zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java

37
zc-business/src/main/java/com/zc/business/controller/NonAutomaticWarningController.java

@ -27,6 +27,9 @@ import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
/**
@ -52,6 +55,8 @@ public class NonAutomaticWarningController extends BaseController {
private IDcWarningService dcWarningService;
@Autowired
private ISysConfigService configService;
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
/*millimeterWaveRadar
* 调用功能
@ -119,11 +124,19 @@ public class NonAutomaticWarningController extends BaseController {
client.setCallback(new MqttCallback() {
public void connectionLost(Throwable cause) {
System.out.println("断开连接..........");
logger.info("断开连接..........");
// 延迟重连
scheduler.schedule(() -> {
try {
getAjaxResult(parameter);
} catch (Exception e) {
throw new RuntimeException(e);
}
}, 10, TimeUnit.SECONDS);
}
public void messageArrived(String topic, MqttMessage message) {
System.out.println("======监听到来自[" + topic + "]的消息======");
logger.info("======监听到来自[" + topic + "]的消息======");
String jsonObjString = new String(message.getPayload());
JSONObject eventJsonObject = JSONObject.parseObject(jsonObjString);
JSONObject params = eventJsonObject.getJSONObject("params");
@ -250,33 +263,33 @@ public class NonAutomaticWarningController extends BaseController {
dcWarning.setWarningState(UniversalEnum.ONE.getNumber());
SimpleDateFormat sdf = new SimpleDateFormat(UniversalEnum.CHINESE_CHARACTER_TIME_FORMAT.getValue());
String formattedDate = sdf.format(happenTime);
dcWarning.setRemark("非机预警设备:"+formattedDate + "在" + stakeMark + srcName + "收费站的" + direction + "发生了一起" + warningType + "事件");
dcWarning.setRemark("非机预警设备:" + formattedDate + "在" + stakeMark + srcName + "收费站的" + direction + "发生了一起" + warningType + "事件");
dcWarningService.insertDcWarning(dcWarning);
});
System.out.println("message content:" + jsonObjString);
System.out.println("============");
logger.info("message content:" + jsonObjString);
logger.info("============");
}
public void deliveryComplete(IMqttDeliveryToken token) {
System.out.println("deliveryComplete---------" + token.isComplete());
logger.info("deliveryComplete---------" + token.isComplete());
}
});
// 建立连接
System.out.println("连接到 broker: " + host);
logger.info("连接到 broker: " + host);
client.connect(options);
System.out.println("连接成功.");
logger.info("连接成功.");
//订阅消息
//client.subscribe(topicName.getString("6274883585"), 1);
//System.out.println("开始监听" + topicName.getString("6274883585"));
//logger.info("开始监听" + topicName.getString("6274883585"));
client.subscribe(topicName.getString("6274879489"), UniversalEnum.ONE.getNumber());
System.out.println("开始监听" + topicName.getString("6274879489"));
logger.info("开始监听" + topicName.getString("6274879489"));
//client.subscribe(topicName.getString("7768236033"), 1);
//System.out.println("开始监听" + topicName.getString("7768236033"));
//logger.info("开始监听" + topicName.getString("7768236033"));
//client.subscribe(topicName.getString("7835340801"), 1);
//System.out.println("开始监听" + topicName.getString("7835340801"));
//logger.info("开始监听" + topicName.getString("7835340801"));
} catch (Exception e) {
e.printStackTrace();
}

Loading…
Cancel
Save