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