修复 视频知识点片段名称错误问题
This commit is contained in:
parent
a0e00c8b5d
commit
6015245d78
|
|
@ -580,6 +580,7 @@ namespace VideoAnalysisCore.AICore.GPT.DeepSeek
|
|||
//校验结果质量
|
||||
var checkRes = await VerifySpanQuality(questionRes, taskInfo, captions, sections, Course_Id);
|
||||
|
||||
|
||||
if (checkRes != null && checkRes.Score >= 80)
|
||||
{
|
||||
//写入知识点
|
||||
|
|
|
|||
|
|
@ -196,7 +196,7 @@ namespace VideoAnalysisCore.Common
|
|||
//if (gptRes is null)
|
||||
// throw new Exception("未能读取到GPT处理结果");
|
||||
//删除任务执行状态
|
||||
await Redis.HDelAsync(RedisExpandKey.IDTask,task);
|
||||
await Redis.LRemAsync(RedisExpandKey.IDTask,1,task);
|
||||
var taskData = await DbScoped.Sugar.Queryable<VideoTask>()
|
||||
.FirstAsync(s => s.Id == tId);
|
||||
if (taskData.Captions == "[]")
|
||||
|
|
@ -275,14 +275,42 @@ namespace VideoAnalysisCore.Common
|
|||
ReceivingTaskAsync();
|
||||
|
||||
}
|
||||
public static bool StopTask { get; set; } = false;
|
||||
/// <summary>
|
||||
/// 停止接收新任务
|
||||
/// </summary>
|
||||
public static void StopTaskAsync()
|
||||
{
|
||||
StopTask = true;
|
||||
try
|
||||
{
|
||||
//取消接收任务监听
|
||||
Subscribe?.Dispose();
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 开始接收新任务
|
||||
/// </summary>
|
||||
public static void RestartTaskAsync()
|
||||
{
|
||||
StopTask = false;
|
||||
NewTaskAsync();
|
||||
}
|
||||
/// <summary>
|
||||
/// 重新执行新任务
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public static async void NewTaskAsync()
|
||||
{
|
||||
await Redis.DelAsync(RedisExpandKey.IDTask);
|
||||
// 取消 消费机的任务订阅
|
||||
if (StopTask)
|
||||
return;
|
||||
ReceivingTaskAsync();
|
||||
}
|
||||
|
||||
|
|
@ -298,7 +326,7 @@ namespace VideoAnalysisCore.Common
|
|||
}
|
||||
Task.Run(async () =>
|
||||
{
|
||||
var oldTask = await Redis.GetAsync(RedisExpandKey.IDTask);
|
||||
var oldTask = await Redis.LPopAsync(RedisExpandKey.IDTask);
|
||||
if (!string.IsNullOrEmpty(oldTask))
|
||||
{
|
||||
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-------------> 接收重试任务 " + oldTask);
|
||||
|
|
@ -307,17 +335,21 @@ namespace VideoAnalysisCore.Common
|
|||
await InsertChannel(lastEnum, oldTask);
|
||||
return;
|
||||
}
|
||||
if (Subscribe?.IsUnsubscribed == false)//排除重试机制后 多次接收任务导致内存泄露
|
||||
return;
|
||||
Subscribe = Redis.SubscribeList(RedisExpandKey.ChannelKey, async (taskId) =>
|
||||
lock (Redis)
|
||||
{
|
||||
if (taskId is null) return;
|
||||
Subscribe?.Dispose();//取消接收任务监听
|
||||
//存储当前机器的任务
|
||||
Redis.Set(RedisExpandKey.IDTask, taskId);
|
||||
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-------------> 接收到任务 " + taskId);
|
||||
await InsertChannel(RedisChannelEnum.下载文件, taskId);
|
||||
});
|
||||
if (Subscribe?.IsUnsubscribed == false)//排除重试机制后 多次接收任务导致内存泄露
|
||||
return;
|
||||
Subscribe = Redis.SubscribeList(RedisExpandKey.ChannelKey, async (taskId) =>
|
||||
{
|
||||
if (taskId is null) return;
|
||||
Subscribe?.Dispose();//取消接收任务监听
|
||||
//存储当前机器的任务
|
||||
Redis.LPush(RedisExpandKey.IDTask, taskId);
|
||||
Console.WriteLine(DateTime.Now.ToString("HH:mm:ss") + "-------------> 接收到任务 " + taskId);
|
||||
await InsertChannel(RedisChannelEnum.下载文件, taskId);
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
|
@ -333,6 +365,8 @@ namespace VideoAnalysisCore.Common
|
|||
var error = string.Empty;
|
||||
if (ex != null)
|
||||
{
|
||||
|
||||
await Redis.LRemAsync(RedisExpandKey.IDTask, 1, taskID.ToString());
|
||||
//执行任务时出现异常
|
||||
error = ex.Message + ex.StackTrace;
|
||||
Console.WriteLine("====================[出现异常]====================");
|
||||
|
|
|
|||
|
|
@ -193,6 +193,7 @@ namespace VideoAnalysisCore.Controllers
|
|||
Tag = req.Tag,
|
||||
TagId = req.TagId,
|
||||
PPTVideoCode = req.PPTVideoCode,
|
||||
PPTVideoUrl = req.PPTVideoUrl,
|
||||
VideoType=req.VideoType
|
||||
};
|
||||
//Èë¿â
|
||||
|
|
|
|||
|
|
@ -181,6 +181,7 @@ namespace VideoAnalysisCore.Controllers.Dto
|
|||
/// 课程对应ppt视频
|
||||
/// </summary>
|
||||
public string? PPTVideoCode { get; set; }
|
||||
public string? PPTVideoUrl { get; set; }
|
||||
/// <summary>
|
||||
///回调Api地址
|
||||
/// </summary>
|
||||
|
|
|
|||
|
|
@ -167,16 +167,17 @@ namespace VideoAnalysisCore.Controllers
|
|||
/// 获取视频知识点片段<para>taskId/tagId二选一</para>
|
||||
/// </summary>
|
||||
/// <param name="tagId">自定义id</param>
|
||||
/// <param name="taskId">自定义id</param>
|
||||
/// <returns></returns>
|
||||
[HttpGet(Name = "TaskKnowInfo")]
|
||||
public async Task<IActionResult> TaskKnowInfo(string? tagId)
|
||||
public async Task<IActionResult> TaskKnowInfo(string? tagId , string? taskId)
|
||||
{
|
||||
if (string.IsNullOrEmpty(tagId) && !string.IsNullOrEmpty(taskId))
|
||||
tagId = taskId;
|
||||
if (string.IsNullOrEmpty(tagId))
|
||||
return BadRequest();
|
||||
long taskId = 0;
|
||||
var taskIdOK = long.TryParse(tagId, out taskId);
|
||||
var task = await videoTaskDB.AsQueryable()
|
||||
.Where(s => s.TagId == tagId || s.PPTVideoCode == tagId || (taskIdOK && s.Id == taskId))
|
||||
.Where(s => s.TagId == tagId || s.PPTVideoCode == tagId)
|
||||
.FirstAsync();
|
||||
if (task is null)
|
||||
return BadRequest("无效任务");
|
||||
|
|
@ -185,7 +186,7 @@ namespace VideoAnalysisCore.Controllers
|
|||
.Where(s => s.VideoTaskId == task.Id)
|
||||
.ToArrayAsync();
|
||||
if (konwArr is null || konwArr.Length == 0)
|
||||
return BadRequest("ÎÞЧÈÎÎñ");
|
||||
return BadRequest("无有效任务分段");
|
||||
var res = new TaskKnowRes()
|
||||
{
|
||||
TagId = task.TagId,
|
||||
|
|
|
|||
Loading…
Reference in New Issue