mirror of
https://gitee.com/san-bing/JChargePointProtocol
synced 2026-05-08 11:59:56 +08:00
避免出错,抽象一个端口确认的方法
This commit is contained in:
@@ -39,6 +39,10 @@ public abstract class DownlinkCallService {
|
|||||||
@Value("${cache.type}")
|
@Value("${cache.type}")
|
||||||
protected String cacheType;
|
protected String cacheType;
|
||||||
|
|
||||||
|
protected abstract int determinePort(int restPort, int grpcPort);
|
||||||
|
|
||||||
|
protected abstract void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port);
|
||||||
|
|
||||||
public void sendDownlinkMessage(DownlinkRequestMessage.Builder downlinkMessageBuilder, String pileCode) {
|
public void sendDownlinkMessage(DownlinkRequestMessage.Builder downlinkMessageBuilder, String pileCode) {
|
||||||
CacheValueWrapper<PileSession> pileSessionCacheValueWrapper = pileSessionCache.get(new PileSessionCacheKey(pileCode));
|
CacheValueWrapper<PileSession> pileSessionCacheValueWrapper = pileSessionCache.get(new PileSessionCacheKey(pileCode));
|
||||||
|
|
||||||
@@ -97,10 +101,10 @@ public abstract class DownlinkCallService {
|
|||||||
.setResultHandler(result -> log.debug("下行消息发送完成"));
|
.setResultHandler(result -> log.debug("下行消息发送完成"));
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
int port = determinePort(nodeRestPort, nodeGrpcPort);
|
||||||
|
|
||||||
_sendDownlinkMessage(downlinkMessageBuilder.build(), nodeIp, nodeRestPort, nodeGrpcPort);
|
_sendDownlinkMessage(downlinkMessageBuilder.build(), nodeIp, port);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort);
|
|
||||||
}
|
}
|
||||||
@@ -30,18 +30,20 @@ public class GrpcDownlinkCallService extends DownlinkCallService {
|
|||||||
DownlinkGrpcClient downlinkGrpcClient;
|
DownlinkGrpcClient downlinkGrpcClient;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort) {
|
protected int determinePort(int restPort, int grpcPort) {
|
||||||
try {
|
return grpcPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port) {
|
||||||
|
try {
|
||||||
RequestMsg requestMsg = RequestMsg.newBuilder()
|
RequestMsg requestMsg = RequestMsg.newBuilder()
|
||||||
.setTs(System.currentTimeMillis())
|
.setTs(System.currentTimeMillis())
|
||||||
.setTracer(toTracerProto())
|
.setTracer(toTracerProto())
|
||||||
.setDownlinkRequestMessage(downlinkMessage)
|
.setDownlinkRequestMessage(downlinkMessage)
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
downlinkGrpcClient.sendDownlinkRequest(HostAndPort.fromParts(nodeIp, nodeGrpcPort),
|
downlinkGrpcClient.sendDownlinkRequest(HostAndPort.fromParts(nodeIp, port), requestMsg);
|
||||||
requestMsg);
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("下行消息发送异常", e);
|
log.error("下行消息发送异常", e);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,17 +34,21 @@ public class RestDownlinkCallService extends DownlinkCallService {
|
|||||||
RestTemplate downlinkRestTemplate;
|
RestTemplate downlinkRestTemplate;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int nodeRestPort, int nodeGrpcPort) {
|
protected int determinePort(int restPort, int grpcPort) {
|
||||||
|
return restPort;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void _sendDownlinkMessage(DownlinkRequestMessage downlinkMessage, String nodeIp, int port) {
|
||||||
try {
|
try {
|
||||||
|
invokeDownlinkRestApi(downlinkMessage, nodeIp, port);
|
||||||
invokeDownlinkRestApi(downlinkMessage, nodeIp, nodeRestPort);
|
|
||||||
|
|
||||||
} catch (RestClientException e) {
|
} catch (RestClientException e) {
|
||||||
log.error("下行消息发送异常", e);
|
log.error("下行消息发送异常", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void invokeDownlinkRestApi(DownlinkRequestMessage downlinkRequestMessage, String nodeWebapiIpPort, int nodeRestPort) {
|
private void invokeDownlinkRestApi(DownlinkRequestMessage downlinkRequestMessage, String nodeIp, int port) {
|
||||||
|
// 调整参数名确保一致性
|
||||||
HttpHeaders headers = new HttpHeaders();
|
HttpHeaders headers = new HttpHeaders();
|
||||||
headers.add(JCPP_TRACER_ID, TracerContextUtil.getCurrentTracer().getTraceId());
|
headers.add(JCPP_TRACER_ID, TracerContextUtil.getCurrentTracer().getTraceId());
|
||||||
headers.add(JCPP_TRACER_ORIGIN, TracerContextUtil.getCurrentTracer().getOrigin());
|
headers.add(JCPP_TRACER_ORIGIN, TracerContextUtil.getCurrentTracer().getOrigin());
|
||||||
@@ -53,13 +57,8 @@ public class RestDownlinkCallService extends DownlinkCallService {
|
|||||||
|
|
||||||
HttpEntity<DownlinkRequestMessage> entity = new HttpEntity<>(downlinkRequestMessage, headers);
|
HttpEntity<DownlinkRequestMessage> entity = new HttpEntity<>(downlinkRequestMessage, headers);
|
||||||
|
|
||||||
try {
|
String url = String.format("http://%s:%d/api/onDownlink", nodeIp, port);
|
||||||
ResponseEntity<?> response = downlinkRestTemplate.postForEntity("http://" + nodeWebapiIpPort + ":" + nodeRestPort + "/api/onDownlink",
|
ResponseEntity<?> response = downlinkRestTemplate.postForEntity(url, entity, ResponseEntity.class);
|
||||||
entity, ResponseEntity.class);
|
log.debug("下行消息发送成功 {}", response);
|
||||||
log.debug("下行消息发送成功 {}", response);
|
|
||||||
} catch (RestClientException e) {
|
|
||||||
log.error("下行消息发送失败 {}", downlinkRequestMessage, e);
|
|
||||||
throw new RuntimeException(e);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user