From e23f8cafc890bdd23dc13435de6de5569e829bd5 Mon Sep 17 00:00:00 2001
From: “mitao” <“2763622819@qq.com”>
Date: 星期五, 20 三月 2026 17:08:44 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 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