diff --git a/LMS.Tools/MJPackage/TaskStatusCheckService.cs b/LMS.Tools/MJPackage/TaskStatusCheckService.cs index c44e7fd..0b4fcc8 100644 --- a/LMS.Tools/MJPackage/TaskStatusCheckService.cs +++ b/LMS.Tools/MJPackage/TaskStatusCheckService.cs @@ -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 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 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) { diff --git a/LMS.service/Configuration/QuartzTaskSchedulerConfig.cs b/LMS.service/Configuration/QuartzTaskSchedulerConfig.cs index 7e81e8d..8d53bd9 100644 --- a/LMS.service/Configuration/QuartzTaskSchedulerConfig.cs +++ b/LMS.service/Configuration/QuartzTaskSchedulerConfig.cs @@ -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分钟执行一次 } } \ No newline at end of file diff --git a/LMS.service/Service/MJPackage/MJPackageService.cs b/LMS.service/Service/MJPackage/MJPackageService.cs index 0cdd50d..e88f14f 100644 --- a/LMS.service/Service/MJPackage/MJPackageService.cs +++ b/LMS.service/Service/MJPackage/MJPackageService.cs @@ -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");