From 100f2d185dd0dabcfb2e7a0cd81aef840324238d Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期五, 20 三月 2026 17:56:57 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi
---
xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java | 24 +++++++++++++++++++++++-
1 files changed, 23 insertions(+), 1 deletions(-)
diff --git a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
index e6f078f..fb40a98 100644
--- a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
+++ b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
@@ -10,6 +10,7 @@
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.vo.operation.RouteVo;
import com.xiaopeng.common.core.constant.CacheConstants;
+import com.xiaopeng.common.core.constant.Constants;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.enums.PushMessageTypeEnum;
import com.xiaopeng.common.redis.service.RedisService;
@@ -25,6 +26,8 @@
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
@Slf4j
@@ -108,7 +111,26 @@
SendMessageDTO sendMessageDTO = new SendMessageDTO();
sendMessageDTO.setAppUserId(String.valueOf(xpOrder.getAppUserId()));
sendMessageDTO.setMessage(JSONObject.toJSONString(params));
- xpPushMessageClient.sendRoute(sendMessageDTO);
+ R<String> stringR = xpPushMessageClient.sendRoute(sendMessageDTO);
+ //推送失败,重试3次
+ if(stringR.getCode() != Constants.SUCCESS){
+ ThreadPoolExecutor executor = new ThreadPoolExecutor(1, 1, 0L, TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>());
+ executor.execute(() -> {
+ for (int i = 0; i < 3; i++) {
+ R<String> stringR1 = xpPushMessageClient.sendStatus(sendMessageDTO);
+ if(stringR1.getCode() == Constants.SUCCESS){
+ break;
+ }
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ log.info("推送乘客端剩余导航数据消息失败:{} {} {}", stringR1.getMsg(), JSON.toJSONString(sendMessageDTO), xpOrder.getOrderNumber());
+ }
+ });
+ }
+
log.info("推送剩余导航数据成功 {} {}", xpOrder.getOrderNumber(), JSON.toJSONString(routeVo));
}
return R.ok();
--
Gitblit v1.7.1