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