修改生图包任务轮询方法 请求任务方法
This commit is contained in:
parent
b5ed6a3b1c
commit
6f580ff8eb
@ -20,7 +20,7 @@ namespace LMS.Tools.MJPackage
|
|||||||
|
|
||||||
public async Task Execute(IJobExecutionContext context)
|
public async Task Execute(IJobExecutionContext context)
|
||||||
{
|
{
|
||||||
_logger.LogInformation($"开始检查TASK信息 - 检查间隔: 5 分钟,同步加载 原始请求的Token!");
|
_logger.LogInformation($"开始检查TASK信息 - 检查间隔: 20 秒,同步加载 原始请求的Token!");
|
||||||
|
|
||||||
var startTime = BeijingTimeExtension.GetBeijingTime();
|
var startTime = BeijingTimeExtension.GetBeijingTime();
|
||||||
try
|
try
|
||||||
@ -35,7 +35,7 @@ namespace LMS.Tools.MJPackage
|
|||||||
|
|
||||||
// 检查Task状态和返回值
|
// 检查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)
|
if (tasks.Count == 0)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -108,6 +108,6 @@ public static class QuartzTaskSchedulerConfig
|
|||||||
q.AddTrigger(opts => opts
|
q.AddTrigger(opts => opts
|
||||||
.ForJob(jobKey)
|
.ForJob(jobKey)
|
||||||
.WithIdentity("FiveMinuteTaskTrigger", "DefaultGroup")
|
.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 Microsoft.EntityFrameworkCore;
|
||||||
using System.Net.Sockets;
|
using System.Net.Sockets;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using static Betalgo.Ranul.OpenAI.ObjectModels.StaticValues.AssistantsStatics.MessageStatics;
|
||||||
|
|
||||||
namespace LMS.service.Service.MJPackage
|
namespace LMS.service.Service.MJPackage
|
||||||
{
|
{
|
||||||
@ -32,11 +33,37 @@ namespace LMS.service.Service.MJPackage
|
|||||||
return new UnauthorizedObjectResult(new { error = "无效或过期的Token" });
|
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);
|
var originResult = await TryOriginApiAsync(id);
|
||||||
if (originResult != null) return originResult;
|
if (originResult != null) return originResult;
|
||||||
|
|
||||||
// 尝试备用API
|
|
||||||
var backupResult = await TryBackupApiAsync(id, tokenConfig.UseToken);
|
var backupResult = await TryBackupApiAsync(id, tokenConfig.UseToken);
|
||||||
if (backupResult != null) return backupResult;
|
if (backupResult != null) return backupResult;
|
||||||
|
|
||||||
@ -63,7 +90,7 @@ namespace LMS.service.Service.MJPackage
|
|||||||
{
|
{
|
||||||
mjId = idElementCap.ToString();
|
mjId = idElementCap.ToString();
|
||||||
}
|
}
|
||||||
|
_logger.LogInformation($"MJNotifyHook: 接收到任务ID {mjId}");
|
||||||
if (string.IsNullOrWhiteSpace(mjId))
|
if (string.IsNullOrWhiteSpace(mjId))
|
||||||
{
|
{
|
||||||
_logger.LogWarning("MJNotifyHook: 接收到的回调数据中缺少ID");
|
_logger.LogWarning("MJNotifyHook: 接收到的回调数据中缺少ID");
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user