侧边栏壁纸
  • 累计撰写 71 篇文章
  • 累计创建 15 个标签
  • 累计收到 3 条评论

目 录CONTENT

文章目录

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

寒江孤影
2023-08-17 / 0 评论 / 0 点赞 / 10 阅读 / 2476 字
温馨提示:
本文最后更新于 2023-08-17,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

FluentScheduler

转自Dotnet工具箱:原文

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})");


0

评论区