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,
+ }
+}