Commit aa41a5d9 LN

1.增加重连处理

1 个父辈 dcc32d1c
......@@ -62,42 +62,42 @@ public class MyWebSocketClient extends WebSocketClient {
private static final long RECONNECT_DELAY = 5000; // 重连延迟时间,单位:毫秒
private Timer reconnectTimer; // 重连定时器
private void startReconnect() {
try {
if (reconnectTimer == null) {
reconnectTimer = new Timer();
reconnectTimer.schedule(new TimerTask() {
@Override
public void run() {
try {
log.info("startReconnect ");
// 创建新的WebSocket连接
reconnect();
} catch (Exception e) {
log.error("出错:" + e.toString());
}
}
}, RECONNECT_DELAY);
}
} catch (Exception exception) {
log.error("startReconnect error :" + exception.toString());
}
// try {
// if (reconnectTimer == null) {
// reconnectTimer = new Timer();
// reconnectTimer.schedule(new TimerTask() {
// @Override
// public void run() {
// try {
// log.info("startReconnect ");
// // 创建新的WebSocket连接
// reconnect();
// } catch (Exception e) {
// log.error("出错:" + e.toString());
// }
// }
// }, RECONNECT_DELAY);
// }
// } catch (Exception exception) {
// log.error("startReconnect error :" + exception.toString());
// }
}
private void cancelReconnect() {
try{
if (reconnectTimer != null) {
log.info("cancelReconnect ");
reconnectTimer.cancel();
reconnectTimer = null;
}
}catch (Exception exception){
log.error("cancelReconnect error :"+exception.toString());
}
// try{
// if (reconnectTimer != null) {
// log.info("cancelReconnect ");
// reconnectTimer.cancel();
// reconnectTimer = null;
// }
// }catch (Exception exception){
// log.error("cancelReconnect error :"+exception.toString());
// }
}
// private void reconnect() throws URISyntaxException {
// URI serverUri = super.getURI();
// MyWebSocketClient newClient = new MyWebSocketClient(serverUri);
// newClient.connect();
// this= new MyWebSocketClient(serverUri,msgReceivedListener);
// connect();
// }
}
......@@ -7,6 +7,9 @@ import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ObjectUtil;
......@@ -95,6 +98,7 @@ public class TMSCommunicator implements WsMsgReceivedListener {
{
return gRequestID++;
}
private boolean needCheck=false;
@PostConstruct
public void init() {
host = dataCache.getConfigCache("hanwha.host", host);
......@@ -114,17 +118,46 @@ public class TMSCommunicator implements WsMsgReceivedListener {
try {
Thread.sleep(20000);
start();
Thread.sleep(5000);
needCheck=true;
}catch (Exception e){
log.error("自动关闭库位灯出错:" + e.getMessage());
log.error("开始连接webService出错:" + e.getMessage());
}
}
});
} );
closeTask.start();
ExecutorService executorService = Executors.newSingleThreadExecutor();
executorService.execute(new Runnable() {
@Override
public void run() {
log.info("启动 webService 状态检查");
while(true) {
try {
TimeUnit.SECONDS.sleep(5);
if (needCheck) {
stateCheck();
}
} catch (Exception e) {
log.error("webService" + e.getMessage());
}
}
}
});
// start();
}
}
}
private void stateCheck(){
if(websocket.isOpen()||websocket.isConnecting()){
}else{
// log.info("开始重连");
start() ;
}
}
private void updateServerInfo(String serverHost, int wport, int aport) {
host = serverHost;
webPort = wport;
......@@ -238,20 +271,26 @@ public class TMSCommunicator implements WsMsgReceivedListener {
@Autowired
private TMSApis tmsApis;
private void SyncData(){
private void SyncData() {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
// 同步数据
List<String> cids= new ArrayList<>(dataCache.getAllStorage().keySet());
SyncStorageConnectionInfo(cids.toArray(new String[cids.size()]),new Integer[]{});
List<Map<String, StoragePos>> allUsedPoss= dataCache.getAllUsedPosMap();
SyncReelData(allUsedPoss);
SyncDeliveryReserveState( );
try {
// 同步数据
List<String> cids = new ArrayList<>(dataCache.getAllStorage().keySet());
SyncStorageConnectionInfo(cids.toArray(new String[cids.size()]), new Integer[]{});
List<Map<String, StoragePos>> allUsedPoss = dataCache.getAllUsedPosMap();
SyncReelData(allUsedPoss);
SyncDeliveryReserveState();
// List<TMSPart> result= tmsApis.RequestGetPartInfo(0,"20180126153040-001");
// onMsgReceived("{\"PartNames\":[\"Z2203021401A\",\"20180711092420-002\",\"20180710181845-001\"],\"Counts\":[5000,1,1],\"TowerLamp\":false,\"Topic\":\"RequestDeliveryOrder\",\"id\":2,\"uid\":439570}");
// onMsgReceived("{\"PartNames\":[\"Z2203021401A\",\"20180711092420-002\",\"20180710181845-001\"],\"Counts\":[5000,1,1],\"TowerLamp\":false,\"Topic\":\"RequestDeliveryOrder\",\"id\":1,\"uid\":472393}");
} catch (Exception exception) {
log.error(exception.toString());
}
}
});
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!