修改返回报错逻辑

请求失败或者请求返回的code 不是 1 22 24 地时候 可以减少日使用量和释放型号量
单独处理 code 为 24 的时候。创建失败请求和只释放不减少日使用量
This commit is contained in:
2025-06-23 23:47:11 +08:00
parent 4340dd25a1
commit ef46c30ed3
5 changed files with 147 additions and 7 deletions
+11 -2
View File
@@ -75,10 +75,19 @@ namespace LMS.service.Controllers
description = "提交成功",
result = 1320098173412546
});
if (result == null || (result.code != 1 && result.code != 22))
if (result == null || (result.code != 1 && result.code != 22 && result.code != 24))
{
HttpContext.Items["ReleaseConcurrencyPermit"] = true;
_logger.LogInformation($"业务逻辑失败,返回结果为空或者返回请求码不是 1 或 22, 标记释放Token并发许可: {token}");
_logger.LogInformation($"业务逻辑失败,返回结果为空或者返回请求码不是 1 或 22 或 24, 标记释放Token并发许可: {token}");
return res;
}
// 单独处理 24 存在铭感词,创建任务,需要释放,但是不减少
if (result.code == 24)
{
HttpContext.Items["OnlyReleaseConcurrencyPermit"] = true;
await _taskConcurrencyManager.CreateErrorTaskAsync(requestToken, model, result.description);
return res;
}
@@ -150,7 +150,6 @@ namespace LMS.service.Extensions.Attributes
{
// 键存在,permitValue 包含实际值
shouldRelease = true;
// 可以使用 permitValue 变量
}
else
{
@@ -158,11 +157,37 @@ namespace LMS.service.Extensions.Attributes
shouldRelease = false;
}
// 需要释放,直接释放并发许可
if (executedContext.HttpContext.Response.StatusCode >= 400 || shouldRelease)
var onlyRelease = false;
if (executedContext.HttpContext.Items.TryGetValue("OnlyReleaseConcurrencyPermit", out var onlyPermitValue))
{
usageTracker.ReleaseConcurrencyPermit(_token);
logger.LogInformation($"请求失败,Token并发许可已释放: {_token}, 状态码={executedContext.HttpContext.Response.StatusCode}");
// 键存在,permitValue 包含实际值
onlyRelease = true;
// 可以使用 permitValue 变量
}
else
{
// 键不存在
onlyRelease = false;
}
// 需要释放,直接释放并发许可
if (executedContext.HttpContext.Response.StatusCode >= 400 || shouldRelease || onlyRelease)
{
if (onlyRelease)
{
usageTracker.ReleaseConcurrencyPermit(_token);
logger.LogInformation($"请求失败, 但是是敏感词失败, 不减少使用数, 只释放Token并发许可: {_token}, 状态码={executedContext.HttpContext.Response.StatusCode}");
}
else
{
usageTracker.ReleaseConcurrencyPermit(_token);
// 请求失败 或者 返回的code 不是 1 和 22 需要减少使用计数
if (tokenConfig.DailyLimit > 0)
{
usageTracker.DecrementUsage(_token);
}
logger.LogInformation($"请求失败,Token并发许可已释放: {_token}, 状态码={executedContext.HttpContext.Response.StatusCode}");
}
}
else
{