修改 文件包回调执行时间

This commit is contained in:
小肥羊 2025-03-24 18:12:52 +08:00
parent 655ee7ea5f
commit 6b9fc167ee
9 changed files with 32 additions and 27 deletions

View File

@ -52,7 +52,7 @@
</DescriptionsItem>
<DescriptionsItem Title="任务时间轴" Span="5">
<Steps Current="@RowSTIndex(rowData)" Status="@RowSTStatus(rowData)">
<Steps Current="@((int)rowData.Data.LastEnum)" Status="@rowData.Data.TaskStatus">
<Step Title="下载文件"
Description="@RowST(rowData,RedisChannelEnum.DownloadFile)" />

View File

@ -131,6 +131,15 @@ namespace Learn.VideoAnalysis.Components.Pages
item.StartTimeDic = System.Text.Json.JsonSerializer.Deserialize<Dictionary<RedisChannelEnum, DateTime>>(data[2]) ?? null;
item.ErrorMessage = data[3];
rowRestartLoading = false;
var statusStr = "wait";
var dic = rowData.Data.StartTimeDic;
if (dic is null)
statusStr= "wait";
else if (!string.IsNullOrEmpty(rowData.Data.ErrorMessage))
statusStr= "error";
else if (dic.ContainsKey(RedisChannelEnum.EndTask))
statusStr= "finish";
item.TaskStatus = statusStr;
StateHasChanged();
}
/// <summary>
@ -144,24 +153,10 @@ namespace Learn.VideoAnalysis.Components.Pages
return "--";
return dic[e].ToString();
}
private string RowSTStatus(RowData<VideoTaskDto> rowData)
{
var dic = rowData.Data.StartTimeDic;
if (dic is null)
return "wait";
if (!string.IsNullOrEmpty(rowData.Data.ErrorMessage))
return "error";
if (dic.ContainsKey(RedisChannelEnum.EndTask))
return "finish";
return "wait";
}
private int RowSTIndex(RowData<VideoTaskDto> rowData)
{
return (int)rowData.Data.LastEnum;
}
private void OnExpand(RowData<VideoTaskDto> rowData)
{
RowRload(rowData);
if(rowData.Expanded)
RowRload(rowData);
}
/// <summary>
/// 在渲染页面之后

View File

@ -15,6 +15,7 @@ using FFmpeg.NET.Services;
using static FFmpeg.NET.MetaData;
using static System.Runtime.InteropServices.JavaScript.JSType;
using Yitter.IdGenerator;
using VideoAnalysisCore.AICore.GPT.Dto;
namespace Learn.VideoAnalysis.Controllers
{
@ -77,6 +78,7 @@ namespace Learn.VideoAnalysis.Controllers
[HttpPost(Name = "NodePackage")]
public async Task<IActionResult> NodePackage(NodePackageReq req)
{
Console.WriteLine($"{DateTime.Now} 文件包订阅请求 req=" + JsonSerializer.Serialize(req));
if (req is null || req.NodeId == 0)
return BadRequest("ÎÞЧµÄÌá½»Êý¾Ý");
if (req.AnalyzeItems is null || req.AnalyzeItems.Count() == 0)
@ -94,12 +96,8 @@ namespace Learn.VideoAnalysis.Controllers
StructurePageContentId = s.StructurePageContentId,
};
nodePackages.Add(np);
if (videoIdArr.Contains(s.VideoCode))
{
Console.WriteLine($"重复任务");
continue;
}
videos.Add(new VideoTask()
{
Id = YitIdHelper.NextId(),
@ -113,9 +111,10 @@ namespace Learn.VideoAnalysis.Controllers
MediaName = s.VideoName
});
}
await nodePackageInfoDB.InsertRangeAsync(nodePackages);
await videoTaskDB.InsertRangeAsync(videos);
if (videos is null || videos.Count == 0)
return Ok();
var ids = videos.Select(s => s.Id).ToArray();
RedisExpand.JoinQueue(ids);
return Ok();

View File

@ -29,9 +29,9 @@ namespace Learn.VideoAnalysis.Expand
//每5分钟执行一次 未处理视频扫描
scheduler.Schedule<NodeSubscriptionJob>().EveryFiveMinutes();
//文件包分析
scheduler.Schedule<NodePackageJob>().HourlyAt(10);
scheduler.Schedule<NodePackageJob>().EveryThirtyMinutes(); //每30分钟执行一次
//任务缓存清理
// scheduler.Schedule<TaskFileClearJob>().HourlyAt(10);
// scheduler.Schedule<TaskFileClearJob>().HourlyAt(10);
});
}
}

View File

@ -20,7 +20,6 @@ namespace Learn.VideoAnalysis
{
public static void Main(string[] args)
{
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.

View File

@ -208,7 +208,7 @@ namespace VideoAnalysisCore.AICore.SherpaOnnx
if (!string.IsNullOrEmpty(stream.Result.Text))
{
var text = stream.Result.Text.Trim();
if (text.Length == 1 && text.First() >= '\uFF00' && text.First() <= '\uFFEF') // 检查字符是否在全角半角字符集的标点符号范围内
if (text.Length == 1 && text == "。")// 检查字符是否只有一个句号
{
VAD.Pop();
return;

View File

@ -121,6 +121,8 @@ namespace VideoAnalysisCore.Common
/// <param name="taskIds"></param>
public static void JoinQueue(params long[] taskIds)
{ //事务
if (taskIds is null || taskIds.Length == 0)
return;
using (var tran = Redis.Multi())
{
foreach (var item in taskIds)

View File

@ -72,6 +72,11 @@ namespace VideoAnalysisCore.Job
.UpdateColumns(it => new { it.SuccessTime })
.ExecuteCommandAsync();
}
else
{
var res = await responseMessage.Content.ReadAsStringAsync();
Console.WriteLine($"{DateTime.Now} Invoke=>文件包任务 回调失败!!! {responseMessage.StatusCode} {res}");
}
}
}
}

View File

@ -80,6 +80,11 @@ namespace VideoAnalysisCore.Model.Dto
/// 开始时间轴
/// <para>逻辑字段</para>
/// </summary>
public Dictionary<RedisChannelEnum, DateTime>? StartTimeDic {get; set;}
public Dictionary<RedisChannelEnum, DateTime>? StartTimeDic {get; set; }
/// <summary>
/// 任务处理状态
/// <para>逻辑字段</para>
/// </summary>
public string? TaskStatus { get; set; }
}
}