这篇文章介绍了C#定时器插件FluentScheduler的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
一、定时任务调度的方法或者组件:
任务定时器–FluentScheduler组件可以在C#和ASP.NET程序中使用,使用方法很简单,官方有使用案例:
FluentScheduler 中 对象: IJob(工作)、Registry(注册)、Schedule(计划)
二、实例
项目需要一个按时执行的任务,每隔几分钟执行一个,或者每隔几小时执行一次等等,这个时候就需要一个定时的功能,最简单的就是用Timer自己写一个,但是自己写的性能等各方面有可能不健全等等,而现在开源的库也越来越多,功能也越来越好,直接拿来主义。
1.NuGet下载FluentScheduler控件
FluentScheduler定时任务库,通过nuget引用,可以设置各种事件间隔,,超级方便简单。
2.编写一个注册表。继承Registry类
using FluentScheduler;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace NetFrameTest.test
{
public class MyRegistry : Registry
{
public MyRegistry()
{
// 每天执行一次(这里是在每天的下午 15:40 分执行),可以不用类,直接虚拟方法
Schedule(() => Console.WriteLine("It's 15:42 now.")).ToRunEvery(1).Days().At(15, 42);
// 每两秒执行一次(指定一个时间间隔运行,根据自己需求,可以是秒、分、时、天、月、年等。)
Schedule<MyJob>().ToRunNow().AndEvery(2).Seconds();
// 每五秒执行一次(延迟一个指定时间间隔执行一次计划任务)
Schedule<MyJob>().ToRunOnceIn(5).Seconds();
// 每月执行一次(这里是在每月的第一周的周一3点执行)
Schedule<MyJob>().ToRunNow().AndEvery(1).Months().OnTheLast(DayOfWeek.Friday).At(16, 0);
// 构造函数执行
Schedule(() => new MyOtherJob("Foo")).ToRunNow().AndEvery(2).Seconds();
// 先执行第一个Job、再执行第二个Job;完成后等5秒继续循环
Schedule<MyJob>().AndThen<MyOtherJob>().ToRunNow().AndEvery(5).Minutes();
}
}
}
3.编写定时执行任务,工作类
根据使用方法,是否实现IJob接口
public class MyJob : IJob
{
public void Execute()
{
Console.WriteLine($"MyJob 当前时间:{DateTime.Now}");
}
}
public class MyOtherJob : IJob
{
private string Name;
public MyOtherJob(string name)
{
Name = name;
}
public void Execute()
{
Console.WriteLine($"MyOtherJob 姓名:{Name} 当前时间:{DateTime.Now}");
}
}
4.初始化定时器
定时任务写好之后只需要在Main中引用就可以了
// static void Main(string[] args)
JobManager.Initialize(new MyRegistry());
在ASP.NET程序的Global.asax文件中,首先初始化管理器,这样定时器就开启了。
protected void Application_Start()
{
JobManager.Initialize(new MyRegistry());
}
以上是第一种写法,下面介绍第二种写法,这里执行多个任务 不同时间段
protected void Application_Start()
{
JobManager.AddJob<MyJob>(t=>t.ToRunEvery(1).Days().At(24,00));//每天的凌晨12点 执行
JobManager.AddJob<MyOtherJob>(t => t.ToRunEvery(1).Months().OnTheLastDay().At(8,30));//每个月的最后一天早上八点半 执行
JobManager.Start();//启动任务管理器
}
到此这篇关于C#定时器插件FluentScheduler的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持得得之家。
本文标题为:C#定时器组件FluentScheduler用法
基础教程推荐
- C# windows语音识别与朗读实例 2023-04-27
- linux – 如何在Debian Jessie中安装dotnet core sdk 2023-09-26
- C#控制台实现飞行棋小游戏 2023-04-22
- C# List实现行转列的通用方案 2022-11-02
- C# 调用WebService的方法 2023-03-09
- 一个读写csv文件的C#类 2022-11-06
- unity实现动态排行榜 2023-04-27
- winform把Office转成PDF文件 2023-06-14
- C#类和结构详解 2023-05-30
- ZooKeeper的安装及部署教程 2023-01-22