From ae4374bd35b7a5522f2aaba746e2ce2d445f54e0 Mon Sep 17 00:00:00 2001 From: Falcon <12919280+falconfly@user.noreply.gitee.com> Date: Wed, 16 Apr 2025 14:35:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=A9=E5=B1=95=E5=92=8C=E9=87=8D=E5=86=99?= =?UTF-8?q?=E4=BA=86ITaskManager=E6=8E=A5=E5=8F=A3=EF=BC=8C=E4=B8=8A?= =?UTF-8?q?=E4=B8=AA=E7=89=88=E6=9C=AC=E5=8F=96=E6=B6=88=EF=BC=8C=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E9=87=8D=E6=96=B0=E7=BC=96=E5=86=99=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Falcon.SugarApi/TimedTask/ITaskManager.cs | 34 ++++++++++++------- .../TimedTask/LastRunInformation.cs | 13 +++++++ .../TimedTask/TaskControlResult.cs | 12 +++++++ Falcon.SugarApi/TimedTask/TaskState.cs | 33 ++++++++++++++++++ 4 files changed, 79 insertions(+), 13 deletions(-) create mode 100644 Falcon.SugarApi/TimedTask/LastRunInformation.cs create mode 100644 Falcon.SugarApi/TimedTask/TaskControlResult.cs create mode 100644 Falcon.SugarApi/TimedTask/TaskState.cs diff --git a/Falcon.SugarApi/TimedTask/ITaskManager.cs b/Falcon.SugarApi/TimedTask/ITaskManager.cs index 5963308..dda5359 100644 --- a/Falcon.SugarApi/TimedTask/ITaskManager.cs +++ b/Falcon.SugarApi/TimedTask/ITaskManager.cs @@ -1,4 +1,5 @@ -using System; +using System.Threading; +using System.Threading.Tasks; namespace Falcon.SugarApi.TimedTask { @@ -24,26 +25,33 @@ namespace Falcon.SugarApi.TimedTask /// string? TaskGroup { get; } - /// - /// 上次运行时间 - /// - DateTime? LastRunTime { get; } - /// - /// 上次运行信息 - /// - public string? LastRunMessage { get; } - /// /// 运行一次任务 /// - (bool isSuccess, string msg) RunOnce(); + /// 退出信号 + /// 控制结果 + Task RunOnceAsync(CancellationToken cancellationToken = default); /// /// 开始任务 /// - (bool isSuccess, string msg) StartTask(); + /// 退出信号 + /// 控制结果 + Task StartTaskAsync(CancellationToken cancellationToken = default); /// /// 停止任务 /// - (bool isSuccess, string msg) StopTask(); + /// 退出信号 + /// 控制结果 + Task StopTaskAsync(CancellationToken cancellationToken = default); + /// + /// 获得当前任务状态 + /// + /// 当前任务状态 + Task GetTaskStateAsync(); + /// + /// 获取上次运行信息 + /// + /// 结果信息 + Task GetLastRunInfomationAsync(); } } diff --git a/Falcon.SugarApi/TimedTask/LastRunInformation.cs b/Falcon.SugarApi/TimedTask/LastRunInformation.cs new file mode 100644 index 0000000..8228a38 --- /dev/null +++ b/Falcon.SugarApi/TimedTask/LastRunInformation.cs @@ -0,0 +1,13 @@ +using System; + +namespace Falcon.SugarApi.TimedTask +{ + /// + /// 任务上次运行结果信息 + /// + /// 是否成功 + /// 运行时间 + /// 运行信息 + /// 引发的异常 + public record LastRunInformation(bool IsSuccess,DateTime Time,string? Msg,Exception? Exception); +} diff --git a/Falcon.SugarApi/TimedTask/TaskControlResult.cs b/Falcon.SugarApi/TimedTask/TaskControlResult.cs new file mode 100644 index 0000000..5887b12 --- /dev/null +++ b/Falcon.SugarApi/TimedTask/TaskControlResult.cs @@ -0,0 +1,12 @@ +using System; + +namespace Falcon.SugarApi.TimedTask +{ + /// + /// 任务控制返回结果 + /// + /// 是否成功 + /// 返回信息 + /// 返回异常 + public record TaskControlResult(bool isSuccess,string msg,Exception? exception); +} diff --git a/Falcon.SugarApi/TimedTask/TaskState.cs b/Falcon.SugarApi/TimedTask/TaskState.cs new file mode 100644 index 0000000..da717e4 --- /dev/null +++ b/Falcon.SugarApi/TimedTask/TaskState.cs @@ -0,0 +1,33 @@ +namespace Falcon.SugarApi.TimedTask +{ + /// + /// 任务状态 + /// + public enum TaskState + { + /// + /// 准备-任务准备就绪等待开始执行 + /// + Ready, + /// + /// 等待-任务已经启动,等待下次启动 + /// + Waiting, + /// + /// 运行-任务执行中 + /// + Running, + /// + /// 停止-任务已经停止,不会再运行 + /// + Stopping, + /// + /// 未知状态--当前状态未知 + /// + Unknown, + /// + /// 不支持-当前任务不支持状态查询 + /// + NoSupport, + } +}