-
简单使用调度器作者 : Jacky 发布于 2023-05-18 10:20:16 浏览 979 次作业调度其实就是一个定时器,定时完成某件事,比如:每分钟执行一次,每小时执行一次,每天执行一次,第二周几执行,每月几号几点执行,间隔多少个小时执行一次等。
1. 定时只执行一次也就是多久后执行
var job = new XiaoFeng.Threading.Job { Async = true, Name="作业名称", TimerType= XiaoFeng.Threading.TimerType.Once, StartTime= DateTime.Now.AddMinutes(5), SuccessCallBack = job => { /*到时间执行任务*/ } }; job.Start();
当前作业为5 分钟后执行一次,然后就是销毁,作业从调度中移除。
2. 间隔执行
var job = new XiaoFeng.Threading.Job { Async = true, Name = "作业名称", TimerType = XiaoFeng.Threading.TimerType.Interval, Period = 5000, StartTime = DateTime.Now.AddMinutes(5), SuccessCallBack = job => { /*到时间执行任务*/ } }; job.Start();
当前作业为,5分钟后运行,然后每隔5分钟会再执行一次。
3. 每天定时执行一次
var job = new XiaoFeng.Threading.Job { Async = true, Name = "作业名称", TimerType = XiaoFeng.Threading.TimerType.Day, Times = new List
{ new Times(2,0,0),new Times(4,0,0) }, StartTime = DateTime.Now.AddMinutes(5), SuccessCallBack = job => { /*到时间执行任务*/ } }; job.Start(); 当前作业为,5分钟后运行,然后每天2点,4点各执行一次。
4. 每周几几点执行,每月几号几点执行
var job = new XiaoFeng.Threading.Job { Async = true, Name = "作业名称", TimerType = XiaoFeng.Threading.TimerType.Week, Times = new List
{ new Times(10,12,13,week:1),new Times(11,12,13,week:1) }, StartTime = DateTime.Now.AddMinutes(5), SuccessCallBack = job => { /*到时间执行任务*/ } }; job.Start(); 当前作业为,5分钟后运行,然后每周的周一10点12分13秒和11点12分13秒各执行一次。
大家问的最多的就是想在某个时候,想停止调度中的某个作业;
下面简单为大家介绍一下停止作业的方式
如下代码
var list1 = new List
(); var list2 = new List (); var list3 = new List (); var job1 = new Job() { Name="job1", TimerType= TimerType.Interval, Period=30*60*1000, SuccessCallBack = j => { Console.WriteLine("执行"); } }; list1.Add(job1); list2.Add(job1.ID); list3.Add(job1.Name); job1.Start(); /* * 第一种方法 通过job自己停止 */ job1.Stop(); /* * 第二种方法 通过 作业ID或Name停止 */ JobScheduler.Default.Remove(job1.ID); JobScheduler.Default.Remove(job1.Name); 上边建了三个list 来存储我们已经开启的作业
通过我们作业的关键词来找出来是作业对象或作业的ID ,作业的名称
找到作业对象,就可以直接通过对象执行停止
找到作业ID或作业名称可以通过调度器提供的方法来停止当前作业。
所有评论(0)