xf преди 3 седмици
родител
ревизия
d70683136e
променени са 2 файла, в които са добавени 131 реда и са изтрити 0 реда
  1. 91 0
      src/Hotline/BatchTask/Apptask.cs
  2. 40 0
      src/Hotline/BatchTask/IApptaskDomainService.cs

+ 91 - 0
src/Hotline/BatchTask/Apptask.cs

@@ -0,0 +1,91 @@
+using SqlSugar;
+using System;
+using XF.Domain.Repository;
+
+namespace Hotline.BatchTask;
+
+/// <summary>
+/// 系统任务
+/// </summary>
+public class Apptask : CreationEntity
+{
+    /// <summary>
+    /// 任务名称
+    /// </summary>
+    public string TaskName { get; set; } = string.Empty;
+
+    /// <summary>
+    /// 任务描述
+    /// </summary>
+    public string TaskDesc { get; set; } = string.Empty;
+
+
+    public List<ApptaskItem> ApptaskItems { get; set; }
+}
+
+
+public class ApptaskItem
+{
+    /// <summary>
+    /// 任务id
+    /// </summary>
+    public string ApptaskId { get; set; }
+
+    /// <summary>
+    /// 业务id(冗余)
+    /// </summary>
+    public string BusinessId { get; set; }
+
+    /// <summary>
+    /// 任务类型
+    /// </summary>
+    public ETaskType TaskType { get; set; }
+
+    /// <summary>
+    /// 任务状态
+    /// </summary>
+    public ETaskStatus TaskStatus { get; set; }
+
+    /// <summary>
+    /// 任务执行时间
+    /// </summary>
+    public DateTime? TaskExecuteTime { get; set; }
+
+    /// <summary>
+    /// 参数
+    /// </summary>
+    [SugarColumn(ColumnDataType = "varchar(8000)")]
+    public string TaskParams { get; set; }
+
+    [SugarColumn(IsEnableUpdateVersionValidation = true)]
+    public string Ver { get; set; }
+
+    public Apptask Apptask { get; set; }
+}
+
+/// <summary>
+/// 任务状态
+/// </summary>
+public enum ETaskStatus
+{
+    Wait = 0,
+    Processing = 1,
+    Success = 2,
+    Failed = 3,
+}
+
+/// <summary>
+/// 任务类型
+/// </summary>
+public enum ETaskType
+{
+    /// <summary>
+    /// 延期
+    /// </summary>
+    Delay = 1,
+
+    /// <summary>
+    /// 甄别
+    /// </summary>
+    Screen = 2,
+}

+ 40 - 0
src/Hotline/BatchTask/IApptaskDomainService.cs

@@ -0,0 +1,40 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Hotline.BatchTask
+{
+    public interface IApptaskDomainService
+    {
+        /// <summary>
+        /// 新增任务
+        /// </summary>
+        Task<string> AddAsync(Apptask apptask, CancellationToken cancellation);
+
+        /// <summary>
+        /// 查询任务进度
+        /// </summary>
+        /// <returns></returns>
+        Task<> QueryProgressAsync(string taskId, CancellationToken cancellation);
+
+        /// <summary>
+        /// 终止任务
+        /// </summary>
+        /// <param name="taskId"></param>
+        /// <param name="cancellation"></param>
+        /// <returns></returns>
+        Task TerminalTaskAsync(string taskId, CancellationToken cancellation);
+
+        /*job request*/
+        Task<ApptaskItem> GetNextAsync(CancellationToken cancellation);
+
+        Task ExecuteAsync(IApptaskExecutor executor, CancellationToken cancellation);
+    }
+
+    public class ApptaskDomainService : IApptaskDomainService
+    {
+
+    }
+}