• 定时任务 Quarzt


      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

     

  • 相关阅读:
    Gitlab 与 Git Windows 客户端一起使用的入门流程
    怎样把SEL放进NSArray里
    PerformSelector may cause a leak because its selector is unknown 解决方法
    drawRect
    记录常规越狱的判断方法
    网页 js
    UICollectionView 基础
    FMDB的简单使用
    图层的一些基本动画效果
    NSPredicate简单介绍
  • 原文地址:https://www.cnblogs.com/jasonbourne3/p/11098075.html
Copyright © 2020-2023  润新知