新增 批量插入队列接口
This commit is contained in:
parent
5a6dc49615
commit
d5a1da1040
|
|
@ -70,7 +70,7 @@ namespace VideoAnalysisCore.Common
|
|||
/// <summary>
|
||||
/// 任务对象地址
|
||||
/// </summary>
|
||||
public static string Task(object taskId) => BaseKey + "Task:" + taskId;
|
||||
public static string Task(object taskId) => BaseKey + "TaskInfo:" + taskId;
|
||||
public static string IDTask => BaseKey + "Services:" + AppCommon.Config.ID;
|
||||
public static string TaskGPT(object taskId) => Task(taskId) + ":GPTCached";
|
||||
/// <summary>
|
||||
|
|
@ -179,7 +179,7 @@ namespace VideoAnalysisCore.Common
|
|||
/// <param name="taskId"></param>
|
||||
public void SetTaskGPTCached(object taskId, string time, object? data)
|
||||
{
|
||||
Redis.Set(RedisExpandKey.TaskGPT(taskId) + ":" + time, data, 3600 * 24);
|
||||
Redis.Set(RedisExpandKey.TaskGPT(taskId) + ":" + time, data, timeoutSeconds: 3600 * 24);
|
||||
}
|
||||
/// <summary>
|
||||
/// 加入到消费队列
|
||||
|
|
@ -224,6 +224,9 @@ namespace VideoAnalysisCore.Common
|
|||
if (taskId is null) throw new Exception("taskId为空");
|
||||
if (Redis is null) throw new Exception("redis未初始化");
|
||||
|
||||
//设置任务Redis缓存过期时间
|
||||
Redis.Expire(RedisExpandKey.Task(taskId), 60 * 60 * 24 * 14);
|
||||
|
||||
var startTime = Redis.HMGet<Dictionary<RedisChannelEnum, DateTime>>(RedisExpandKey.Task(taskId), "StartTime").FirstOrDefault();
|
||||
if (startTime is null)
|
||||
startTime = new Dictionary<RedisChannelEnum, DateTime>();
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ using VideoAnalysisCore.Common.Expand;
|
|||
using Microsoft.Extensions.DependencyInjection;
|
||||
using System.Threading.Tasks;
|
||||
using VideoAnalysisCore.Model.蓝鲸智库;
|
||||
using VideoAnalysisCore.Model.Interface;
|
||||
|
||||
namespace VideoAnalysisCore.Controllers
|
||||
{
|
||||
|
|
@ -76,9 +77,22 @@ namespace VideoAnalysisCore.Controllers
|
|||
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
/// 插入批量任务id
|
||||
/// </summary>
|
||||
/// <param name="ids">是否执行任务</param>
|
||||
/// <returns></returns>
|
||||
[HttpPost(Name = "JoinQueue")]
|
||||
public IActionResult JoinQueue(long[] ids)
|
||||
{
|
||||
if ( ids == null || ids.Count()==0)
|
||||
return BadRequest("录入数据无效");
|
||||
redisManager.JoinQueue(ids);
|
||||
return Ok();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// ³õʼ»¯Ö÷¿â±í
|
||||
/// 当前消费者 继续执行任务
|
||||
/// </summary>
|
||||
/// <param name="task">是否执行任务</param>
|
||||
/// <returns></returns>
|
||||
|
|
@ -204,11 +218,7 @@ namespace VideoAnalysisCore.Controllers
|
|||
VideoType=req.VideoType
|
||||
};
|
||||
//入库
|
||||
var hashEntries = task.GetType()
|
||||
.GetProperties(BindingFlags.Public | BindingFlags.Instance)
|
||||
.ToDictionary(s => s.Name, s => s.GetValue(task));
|
||||
await videoTaskDB.InsertAsync(task);
|
||||
redisManager.Redis.HMSet(RedisExpandKey.Task(task.Id), hashEntries);
|
||||
redisManager.Redis.LPush(RedisExpandKey.ChannelKey, task.Id);
|
||||
return Ok(task.Id);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue