修改返回报错逻辑
请求失败或者请求返回的code 不是 1 22 24 地时候 可以减少日使用量和释放型号量 单独处理 code 为 24 的时候。创建失败请求和只释放不减少日使用量
This commit is contained in:
@@ -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
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user