这里讲下,quartz这种任务调度程序的简单使用html
这是使用的quartz的3.x 版本c#
2.x 版本与此稍有区别,能够在网上查看2.x版本教程async
使用语言为c#学习
quartz的使用分为几个步骤ui
其中2步骤也能够放到步骤5后面 spa
另外,别忘记在nuget管理器中引入quartz.net
代码以下code
class Program { /// <summary> /// 入口程序 /// </summary> /// <param name="args"></param> static void Main(string[] args) { Run(); Console.ReadKey(); } /// <summary> /// 任务调度的使用过程 /// </summary> /// <returns></returns> public async static Task Run() { // 1.建立scheduler的引用 ISchedulerFactory schedFact = new StdSchedulerFactory(); IScheduler sched = await schedFact.GetScheduler(); //2.启动 scheduler await sched.Start(); // 3.建立 job IJobDetail job = JobBuilder.Create<SimpleJob>() .WithIdentity("job1", "group1") .Build(); // 4.建立 trigger ITrigger trigger = TriggerBuilder.Create() .WithIdentity("trigger1", "group1") .WithSimpleSchedule(x => x.WithIntervalInSeconds(5).RepeatForever()) .Build(); // 5.使用trigger规划执行任务job await sched.ScheduleJob(job, trigger); } } /// <summary> /// 任务 /// </summary> public class SimpleJob : IJob { public virtual Task Execute(IJobExecutionContext context) { return Console.Out.WriteLineAsync($"job工做了 在{DateTime.Now}"); } }
运行程序,效果图以下:htm
每5秒执行一次blog
另外,在实际项目使用中,能够进行把上面步骤拆开,封装进行使用
例如,能够把步骤1,步骤2封装到一块儿,即用来产生 scheduler
把 步骤3,步骤4,步骤5 封装到一块儿,用来给不一样的任务 scheduler(至关于注册不一样的 job ,trigger)
另外,还有更多的quartz的用法
这里附上继续学习网址: