ASP.NET Core框架学习之Quarzt.Net

  Quartz.Net是一个从java版的Quartz移植过来的定时任务框架,可以实现异常灵活的定时任务。

  Quartz 有三个概念分别是 计划者(ISchedeler)、工作(IJob)、触发器(Trigger)。

  给计划者(Schedeler)一个工作(Job),让他在Trigger(某个条件)触发的条件下执行这个工作(Job),将要定时执行的任务代码写到实现IJob接口的Execute方法中即可使用,时间到来的时候Execute方法会被调用。

  首先安装nuget包 : Quartz

  创建Job:

 1 public class JobTest : IJob
 2 {
 3         public Task Execute(IJobExecutionContext context)
 4         {
 5             return Task.Run(() =>
 6             {
 7                 try
 8                 {
 9                     Console.WriteLine("任务执行啦" + DateTime.Now);
10                 }
11                 catch (Exception ex)
12                 {
13                     ILog log = LogManager.GetLogger(typeof(JobTest));
14                     log.Error("定时任务出错", ex);
15                 }
16             });
17         }
18 }
创建Job

  创建计划者,触发器:

 1  private static void Main(string[] args)
 2 {
 3             IScheduler sched = new StdSchedulerFactory().GetScheduler().Result;//定义计划者
 4             JobDetailImpl jbBossReport = new JobDetailImpl("JobTest", typeof(JobTest));//时间到来时,执行TestJob类中的context方法。同时给该执行任务命名为jdTest
 5             var triggerBossReport = CronScheduleBuilder.CronSchedule("0/7 * * * * ?").Build(); //确定触发器
 6             triggerBossReport.Key = new TriggerKey("triggerJobTest");//触发器命名为triggerJobTest
 7             sched.ScheduleJob(jbBossReport, triggerBossReport);//计划者sched在触发器triggerBossReport执行的时候,进行jbBossReport工作。
 8             sched.Start();
 9             Console.ReadKey();
10 }
创建计划者,触发器

执行结果:

      

  cron表达式 参考 http://cron.qqe2.com/   

 

        详细参考:https://www.cnblogs.com/MicroHeart/p/9402731.html

 

posted @ 2019-06-27 16:51  唐磊(Jason)  阅读(282)  评论(0编辑  收藏  举报