扩展和重写了ITaskManager接口,上个版本取消,需要重新编写任务管理相关

This commit is contained in:
Falcon 2025-04-16 14:35:42 +08:00
parent 95bcff6edd
commit ae4374bd35
4 changed files with 79 additions and 13 deletions

View File

@ -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
/// </summary>
string? TaskGroup { get; }
/// <summary>
/// 上次运行时间
/// </summary>
DateTime? LastRunTime { get; }
/// <summary>
/// 上次运行信息
/// </summary>
public string? LastRunMessage { get; }
/// <summary>
/// 运行一次任务
/// </summary>
(bool isSuccess, string msg) RunOnce();
/// <param name="cancellationToken">退出信号</param>
/// <returns>控制结果</returns>
Task<TaskControlResult> RunOnceAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 开始任务
/// </summary>
(bool isSuccess, string msg) StartTask();
/// <param name="cancellationToken">退出信号</param>
/// <returns>控制结果</returns>
Task<TaskControlResult> StartTaskAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 停止任务
/// </summary>
(bool isSuccess, string msg) StopTask();
/// <param name="cancellationToken">退出信号</param>
/// <returns>控制结果</returns>
Task<TaskControlResult> StopTaskAsync(CancellationToken cancellationToken = default);
/// <summary>
/// 获得当前任务状态
/// </summary>
/// <returns>当前任务状态</returns>
Task<TaskState> GetTaskStateAsync();
/// <summary>
/// 获取上次运行信息
/// </summary>
/// <returns>结果信息</returns>
Task<LastRunInformation> GetLastRunInfomationAsync();
}
}

View File

@ -0,0 +1,13 @@
using System;
namespace Falcon.SugarApi.TimedTask
{
/// <summary>
/// 任务上次运行结果信息
/// </summary>
/// <param name="IsSuccess">是否成功</param>
/// <param name="Time">运行时间</param>
/// <param name="Msg">运行信息</param>
/// <param name="Exception">引发的异常</param>
public record LastRunInformation(bool IsSuccess,DateTime Time,string? Msg,Exception? Exception);
}

View File

@ -0,0 +1,12 @@
using System;
namespace Falcon.SugarApi.TimedTask
{
/// <summary>
/// 任务控制返回结果
/// </summary>
/// <param name="isSuccess">是否成功</param>
/// <param name="msg">返回信息</param>
/// <param name="exception">返回异常</param>
public record TaskControlResult(bool isSuccess,string msg,Exception? exception);
}

View File

@ -0,0 +1,33 @@
namespace Falcon.SugarApi.TimedTask
{
/// <summary>
/// 任务状态
/// </summary>
public enum TaskState
{
/// <summary>
/// 准备-任务准备就绪等待开始执行
/// </summary>
Ready,
/// <summary>
/// 等待-任务已经启动,等待下次启动
/// </summary>
Waiting,
/// <summary>
/// 运行-任务执行中
/// </summary>
Running,
/// <summary>
/// 停止-任务已经停止,不会再运行
/// </summary>
Stopping,
/// <summary>
/// 未知状态--当前状态未知
/// </summary>
Unknown,
/// <summary>
/// 不支持-当前任务不支持状态查询
/// </summary>
NoSupport,
}
}