任务调度框架

开源的轻量级任务调度框架 - Dotnet工具箱 - 博客园 (cnblogs.com)

1. 开源的轻量级任务调度框架

FluentScheduler 是一个开源的任务调度框架,支持 Fluent 语法,通过 Nuget 安装引用, 和 Quartz.Net 相比,FluentScheduler 足够轻量,非常容易上手。

使用示例

下面是一个仅仅使用几行代码,配置后台任务的示例。

JobManager.Initialize();

JobManager.AddJob(
    () => Console.WriteLine("5分钟过去了."),
    s => s.ToRunEvery(5).Minutes()
);

不同时间场景的任务。

JobManager.AddJob(
//经测试,定时任务不会累积,因为每次任务到了之后调用这个Action,不用等上次任务完成 () => Console.WriteLine("每天 20 点 15 执行一次 "), s => s.ToRunEvery(1).Days().At(20, 15) ); JobManager.AddJob( () => Console.WriteLine("定时 2023年10月10日 执行"), s => s.ToRunOnceAt(new DateTime(2023,10,10)) ); JobManager.AddJob( () => Console.WriteLine("每 5s 执行一次..."), s => s.ToRunOnceIn(5).Seconds() );

删除任务

JobManager.AddJob(
    () => Console.WriteLine("001 任务"),
    s => s.WithName("001").ToRunEvery(1).Days().At(20, 15)
);

JobManager.RemoveJob("001");

获取所有的后台任务

var list = JobManager.AllSchedules;

获取正在运行的任务

var list = JobManager.RunningSchedules;

监听任务的开始和结束

JobManager.JobStart += info 
    => Logger.Information($"{info.Name}: started");

JobManager.JobEnd += info 
    => Logger.Information($"{info.Name}: ended ({info.Duration})");
posted @ 2023-07-22 17:11  81  阅读(40)  评论(0编辑  收藏  举报