TBD: 60秒无心跳判定离线

This commit is contained in:
ZZ 2021-09-03 20:29:11 +08:00
parent 2251c2f47e
commit ee79a722be
7 changed files with 38 additions and 16 deletions

View File

@ -29,7 +29,7 @@ public class EarlierBeanConf {
this.springContextHolder = springContextHolder;
}
public static boolean ifreg(String pileNo) throws NacosException {
public static boolean ifcanreg(String pileNo) throws NacosException {
Map<String, Object> cachePile = REDIS.getCacheMap("pile:".concat(pileNo));
if (!cachePile.isEmpty()) {

View File

@ -207,7 +207,7 @@ public class ChargingController {
String pileNo = startChargingData.getPileNo();
ClientHandler clientHandler = ChargingPileServer.getHandler(pileNo);
if (clientHandler == null) {
ChargingPileServer.removeHandler(pileNo);
// ChargingPileServer.removeHandler(pileNo);
return R.fail("充电桩没有连接到上次注册的服务器,请稍后再试一次");
}
try {
@ -215,7 +215,7 @@ public class ChargingController {
Map<String, Object> cacheGun = REDIS.getCacheMap(gunkey);
String gunstatus = (String) cacheGun.get("status");
if (!"空闲".equals(gunstatus)) {
return R.fail("充电桩不在空闲或正常状态,稍后再试");
return R.fail("端口不在空闲或正常状态,稍后再试");
}
if (CacheDataUtils.hori(gunkey)) return R.fail("等待上一条指令响应");
String skey = gunkey.concat(".seqhex");
@ -255,7 +255,7 @@ public class ChargingController {
ClientHandler clientHandler = ChargingPileServer.getHandler(pileNo);
if (clientHandler == null) {
ChargingPileServer.removeHandler(pileNo);
// ChargingPileServer.removeHandler(pileNo);
return R.fail("充电桩没有连接到上次注册的服务器,请稍后再试一次");
}
try {

View File

@ -38,7 +38,7 @@ public class RegisterLogic implements ServiceLogic {
log.info("pile not in whitelist ({}) ", pileNo);
hexCode = ServiceResult.HEX_01;
resultCode = ServiceResult.FAIL;
} else if (!EarlierBeanConf.ifreg(pileNo)) {
} else if (!EarlierBeanConf.ifcanreg(pileNo)) {
log.info("pile already registered ({}) ", pileNo);
hexCode = ServiceResult.HEX_01;
resultCode = ServiceResult.FAIL;

View File

@ -20,17 +20,17 @@ public class ChargingPileEventHandler implements ClientEventHandler {
@Override
public void gotConnected(ClientHandler handler) {
log.info("-> [{}] <- {}", handler.getName(), handler.getSocket().getRemoteSocketAddress().toString());
log.info("-> [{}] - {} <-", handler.getName(), handler.getSocket().getRemoteSocketAddress().toString());
}
@Override
public void lostConnection(ClientHandler handler) {
String pileNo = ChargingPileServer.getPileNo(handler);
if (pileNo != null) {
ChargingPileServer.removeHandler(pileNo);
}
log.info("-> ({}) - [{}] <- {}",
// if (pileNo != null) {
// ChargingPileServer.removeHandler(pileNo);
// }
log.info("<- ({}) - [{}] - {} ->",
pileNo, handler.getName(), handler.getSocket().getRemoteSocketAddress().toString());
}
@ -44,7 +44,7 @@ public class ChargingPileEventHandler implements ClientEventHandler {
// cachePile.put("status", DISCONNECTED);
// REDIS.setCacheMap(pkey, cachePile);
handler.closeConnection();
log.info("-> ({}) - [{}] <- {}", pileNo, handler.getName(), handler.getSocket().getRemoteSocketAddress().toString());
log.info("<- ({}) - [{}] - {} ->", pileNo, handler.getName(), handler.getSocket().getRemoteSocketAddress().toString());
}
}

View File

@ -78,6 +78,8 @@ public class ChargingPileServer {
public static void removeHandler(String pileNo) {
ClientHandler handler = handlerMap.remove(pileNo);
handler.closeConnection();
log.info("handler [{}] for ({}) close connection", handler.getName(), pileNo);
String pkey = "pile:".concat(pileNo);
Map<String, Object> cachePile = REDIS.getCacheMap(pkey);
cachePile.put("status", DISCONNECTED);
@ -102,11 +104,9 @@ public class ChargingPileServer {
}
}
}
if (handler != null) {
log.info("remove handler [{}] for ({})", handler.getName(), pileNo);
pileMap.remove(handler.getName());
versionMapper.remove(handler.getName());
}
log.info("remove handler [{}] for ({})", handler.getName(), pileNo);
pileMap.remove(handler.getName());
versionMapper.remove(handler.getName());
}
public static void sendClientMsg(String pileNo, byte[] msg) {

View File

@ -0,0 +1,17 @@
package com.xhpc.pp.server;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import java.io.IOException;
@Component
public class HBCheckTask {
@Scheduled(fixedRate = 1000)
protected void run() throws IOException {
System.out.println("hb check");
}
}

View File

@ -54,4 +54,9 @@ public class CRCCalculator {
};
}
public static void main(String[] args) {
System.out.println(calcCrc("6812001F00416985214589654800000000000000"));
}
}