推荐一个开源的轻量级 .NET 任务调度框架

FluentScheduler是一个轻量级的开源任务调度框架,提供FluentAPI进行配置。它可以方便地通过Nuget安装,并且比Quartz.Net更易于上手。文章展示了如何添加、删除以及管理不同时间间隔的任务,还包括监听任务的开始和结束事件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

8b9bad3fb6272e36850958d36ae6e1a5.png

f285fe244288902b8019a5b77f1e1241.gif

270bdc9dd4cf1db491ee3a3de20b6c6c.png

欢迎来到 Dotnet 工具箱!在这里,你可以发现各种令人惊喜的开源项目!

FluentScheduler

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

使用示例

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

JobManager.Initialize();

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

不同时间场景的任务。

JobManager.AddJob(
    () => 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})");
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值