修改生图包任务轮询方法 请求任务方法
This commit is contained in:
parent
b5ed6a3b1c
commit
6f580ff8eb
@ -20,7 +20,7 @@ namespace LMS.Tools.MJPackage
|
||||
|
||||
public async Task Execute(IJobExecutionContext context)
|
||||
{
|
||||
_logger.LogInformation($"开始检查TASK信息 - 检查间隔: 5 分钟,同步加载 原始请求的Token!");
|
||||
_logger.LogInformation($"开始检查TASK信息 - 检查间隔: 20 秒,同步加载 原始请求的Token!");
|
||||
|
||||
var startTime = BeijingTimeExtension.GetBeijingTime();
|
||||
try
|
||||
@ -35,7 +35,7 @@ namespace LMS.Tools.MJPackage
|
||||
|
||||
// 检查Task状态和返回值
|
||||
// 获取所有超过五分钟没有完成的人物
|
||||
List<MJApiTasks> tasks = await _dbContext.MJApiTasks.Where(t => t.Status != MJTaskStatus.CANCEL && t.Status != MJTaskStatus.SUCCESS && t.Status != MJTaskStatus.FAILURE && t.StartTime < BeijingTimeExtension.GetBeijingTime().AddMinutes(-5)).ToListAsync();
|
||||
List<MJApiTasks> tasks = await _dbContext.MJApiTasks.Where(t => t.Status != MJTaskStatus.CANCEL && t.Status != MJTaskStatus.SUCCESS && t.Status != MJTaskStatus.FAILURE && t.StartTime < BeijingTimeExtension.GetBeijingTime()).ToListAsync();
|
||||
|
||||
if (tasks.Count == 0)
|
||||
{
|
||||
|
||||
@ -108,6 +108,6 @@ public static class QuartzTaskSchedulerConfig
|
||||
q.AddTrigger(opts => opts
|
||||
.ForJob(jobKey)
|
||||
.WithIdentity("FiveMinuteTaskTrigger", "DefaultGroup")
|
||||
.WithCronSchedule("0 */5 * * * ?", x => x.InTimeZone(timeZone))); // 每5分钟执行一次
|
||||
.WithCronSchedule("*/20 * * * * ?", x => x.InTimeZone(timeZone))); // 每5分钟执行一次
|
||||
}
|
||||
}
|
||||
@ -6,6 +6,7 @@ using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using System.Net.Sockets;
|
||||
using System.Text.Json;
|
||||
using static Betalgo.Ranul.OpenAI.ObjectModels.StaticValues.AssistantsStatics.MessageStatics;
|
||||
|
||||
namespace LMS.service.Service.MJPackage
|
||||
{
|
||||
@ -32,11 +33,37 @@ namespace LMS.service.Service.MJPackage
|
||||
return new UnauthorizedObjectResult(new { error = "无效或过期的Token" });
|
||||
}
|
||||
|
||||
// 尝试原始API
|
||||
// 获取任务
|
||||
MJApiTasks? mJApiTasks = await _dbContext.MJApiTasks
|
||||
.Where(t => t.ThirdPartyTaskId == id && t.TokenId == tokenConfig.Id)
|
||||
.FirstOrDefaultAsync();
|
||||
if (mJApiTasks == null)
|
||||
{
|
||||
return new BadRequestObjectResult(new
|
||||
{
|
||||
code = 4,
|
||||
description = "task_no_found",
|
||||
type = "upstream_error"
|
||||
});
|
||||
}
|
||||
bool hasProperties = !string.IsNullOrWhiteSpace(mJApiTasks.Properties);
|
||||
|
||||
// 判断状态 和 是不是有数据
|
||||
// 状态不是已完成 并且有数据 直接返回数据库数据 要是已完成 直接就请求原始数据
|
||||
if (mJApiTasks.Status != MJTaskStatus.SUCCESS && mJApiTasks.Status != MJTaskStatus.CANCEL && mJApiTasks.Status != MJTaskStatus.FAILURE && hasProperties)
|
||||
{
|
||||
return new ContentResult
|
||||
{
|
||||
Content = mJApiTasks.Properties,
|
||||
ContentType = "application/json",
|
||||
StatusCode = 200
|
||||
};
|
||||
}
|
||||
|
||||
// 尝试备用API,防止报错
|
||||
var originResult = await TryOriginApiAsync(id);
|
||||
if (originResult != null) return originResult;
|
||||
|
||||
// 尝试备用API
|
||||
var backupResult = await TryBackupApiAsync(id, tokenConfig.UseToken);
|
||||
if (backupResult != null) return backupResult;
|
||||
|
||||
@ -63,7 +90,7 @@ namespace LMS.service.Service.MJPackage
|
||||
{
|
||||
mjId = idElementCap.ToString();
|
||||
}
|
||||
|
||||
_logger.LogInformation($"MJNotifyHook: 接收到任务ID {mjId}");
|
||||
if (string.IsNullOrWhiteSpace(mjId))
|
||||
{
|
||||
_logger.LogWarning("MJNotifyHook: 接收到的回调数据中缺少ID");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user