xgb 6 päivää sitten
vanhempi
commit
35cf946c7c
1 muutettua tiedostoa jossa 16 lisäystä ja 10 poistoa
  1. 16 10
      fs-service/src/main/java/com/fs/feishu/service/FeiShuService.java

+ 16 - 10
fs-service/src/main/java/com/fs/feishu/service/FeiShuService.java

@@ -126,9 +126,9 @@ public class FeiShuService {
                     }
                     if (FeishuErrorCode.isAccountDisable(code)) {
                         disablePersonalAccount(account, e.getMessage());
-                        log.warn("个人账号[{}]被禁用,尝试下一个", account.getAppId());
+                        log.error("个人账号[{}]被禁用(code={},msg={}),尝试下一个", account.getAppId(), code, e.getMessage());
                     } else if (FeishuErrorCode.isRateLimit(code) || FeishuErrorCode.isInternalRetryable(code)) {
-                        log.warn("个人账号[{}]可重试错误,切换下一个", account.getAppId());
+                        log.error("个人账号[{}]可重试错误(code={},msg={}),切换下一个", account.getAppId(), code, e.getMessage());
                     } else {
                         // 业务错误或其他,记录失败并返回
                         recordLinkError(videoId, companyId, courseId, companyUserId, shortLink, step, code, e.getMessage(), 1);
@@ -139,11 +139,12 @@ public class FeiShuService {
                     return null;
                 }
             }
-            log.warn("所有个人账号失败,降级到公共账号池");
+            log.warn("所有个人账号失败(共{}个),降级到公共账号池", personalAccounts.size());
         }
 
         // 2. 公共账号池
         int retries = clientPool.getAvailableCount();
+        log.info("公共账号池可用数量={}, 开始创建注册链接, videoId={}, companyId={}", retries, videoId, companyId);
         for (int i = 0; i < retries; i++) {
             Client client = clientPool.getClient();
             String step = "";
@@ -164,9 +165,9 @@ public class FeiShuService {
                 }
                 if (FeishuErrorCode.isAccountDisable(code)) {
                     clientPool.disableClient(client, e.getMessage());
-                    log.warn("公共账号被禁用,尝试下一个");
+                    log.warn("公共账号被禁用(code={},msg={}),尝试下一个, 剩余={}/{}", code, e.getMessage(), i + 1, retries);
                 } else if (FeishuErrorCode.isRateLimit(code) || FeishuErrorCode.isInternalRetryable(code)) {
-                    log.warn("公共账号可重试错误,切换下一个");
+                    log.error("公共账号可重试错误(code={},msg={}),切换下一个, 剩余={}/{}", code, e.getMessage(), i + 1, retries);
                 } else {
                     recordLinkError(videoId, companyId, courseId, companyUserId, shortLink, step, code, e.getMessage(), 1);
                     return null;
@@ -176,6 +177,8 @@ public class FeiShuService {
                 return null;
             }
         }
+        log.error("飞书注册链接-所有账号不可用: 个人账号{}个已耗尽, 公共池{}个已耗尽, videoId={}, companyId={}",
+                personalAccounts != null ? personalAccounts.size() : 0, retries, videoId, companyId);
         recordLinkError(videoId, companyId, courseId, companyUserId, shortLink, "降级", null, "所有公共账号不可用", 1);
         return null;
     }
@@ -233,9 +236,9 @@ public class FeiShuService {
                     }
                     if (FeishuErrorCode.isAccountDisable(code)) {
                         disablePersonalAccount(account, e.getMessage());
-                        log.warn("个人账号[{}]被禁用,尝试下一个", account.getAppId());
+                        log.warn("个人账号[{}]被禁用(code={},msg={}),尝试下一个", account.getAppId(), code, e.getMessage());
                     } else if (FeishuErrorCode.isRateLimit(code) || FeishuErrorCode.isInternalRetryable(code)) {
-                        log.warn("个人账号[{}]可重试错误,切换下一个", account.getAppId());
+                        log.warn("个人账号[{}]可重试错误(code={},msg={}),切换下一个", account.getAppId(), code, e.getMessage());
                     } else {
                         recordLinkError(param.getVideoId(), param.getCompanyId(), param.getCourseId(),
                                 param.getCompanyUserId(), param.getLink(), step, code, e.getMessage(), 2);
@@ -247,11 +250,12 @@ public class FeiShuService {
                     return null;
                 }
             }
-            log.warn("所有个人账号失败,降级到公共账号池");
+            log.warn("所有个人账号失败(共{}个),降级到公共账号池", personalAccounts.size());
         }
 
         // 2. 公共账号池
         int retries = clientPool.getAvailableCount();
+        log.info("公共账号池可用数量={}, 开始创建课程链接, videoId={}, companyId={}", retries, param.getVideoId(), param.getCompanyId());
         for (int i = 0; i < retries; i++) {
             Client client = clientPool.getClient();
             String step = "";
@@ -276,9 +280,9 @@ public class FeiShuService {
                 }
                 if (FeishuErrorCode.isAccountDisable(code)) {
                     clientPool.disableClient(client, e.getMessage());
-                    log.warn("公共账号被禁用,尝试下一个");
+                    log.warn("公共账号被禁用(code={},msg={}),尝试下一个, 剩余={}/{}", code, e.getMessage(), i + 1, retries);
                 } else if (FeishuErrorCode.isRateLimit(code) || FeishuErrorCode.isInternalRetryable(code)) {
-                    log.warn("公共账号可重试错误,切换下一个");
+                    log.error("公共账号可重试错误(code={},msg={}),切换下一个, 剩余={}/{}", code, e.getMessage(), i + 1, retries);
                 } else {
                     recordLinkError(param.getVideoId(), param.getCompanyId(), param.getCourseId(),
                             param.getCompanyUserId(), param.getLink(), step, code, e.getMessage(), 2);
@@ -290,6 +294,8 @@ public class FeiShuService {
                 return null;
             }
         }
+        log.error("飞书课程链接-所有账号不可用: 个人账号{}个已耗尽, 公共池{}个已耗尽, videoId={}, companyId={}",
+                personalAccounts != null ? personalAccounts.size() : 0, retries, param.getVideoId(), param.getCompanyId());
         recordLinkError(param.getVideoId(), param.getCompanyId(), param.getCourseId(),
                 param.getCompanyUserId(), param.getLink(), "降级", null, "所有公共账号不可用", 2);
         return null;