zoukankan      html  css  js  c++  java
  • C# Quartz 调度任务辅助类

     1 public class QuartzHelper
     2     {
     3         /// <summary>
     4         /// 时间间隔执行任务
     5         /// </summary>
     6         /// <typeparam name="T">任务类,必须实现IJob接口</typeparam>
     7         /// <param name="seconds">时间间隔(单位:毫秒)</param>
     8         public static void ExecuteInterval<T>(int seconds) where T : IJob
     9         {
    10             ISchedulerFactory factory = new StdSchedulerFactory();
    11             IScheduler scheduler = factory.GetScheduler();
    12 
    13             //IJobDetail job = JobBuilder.Create<T>().WithIdentity("job1", "group1").Build();
    14             IJobDetail job = JobBuilder.Create<T>().Build();
    15 
    16             ITrigger trigger = TriggerBuilder.Create()
    17                 .StartNow()
    18                 .WithSimpleSchedule(x => x.WithIntervalInSeconds(seconds).RepeatForever())
    19                 .Build();
    20 
    21             scheduler.ScheduleJob(job, trigger);
    22 
    23             scheduler.Start();
    24         }
    25 
    26         /// <summary>
    27         /// 指定时间执行任务
    28         /// </summary>
    29         /// <typeparam name="T">任务类,必须实现IJob接口</typeparam>
    30         /// <param name="cronExpression">cron表达式,即指定时间点的表达式</param>
    31         public static void ExecuteByCron<T>(string cronExpression) where T : IJob
    32         {
    33             ISchedulerFactory factory = new StdSchedulerFactory();
    34             IScheduler scheduler = factory.GetScheduler();
    35 
    36             IJobDetail job = JobBuilder.Create<T>().Build();
    37 
    38             //DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddSeconds(1), 2);
    39             //DateTimeOffset endTime = DateBuilder.NextGivenSecondDate(DateTime.Now.AddYears(2), 3);
    40 
    41             ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
    42                 //.StartAt(startTime).EndAt(endTime)
    43                 .WithCronSchedule(cronExpression)
    44                 .Build();
    45 
    46             scheduler.ScheduleJob(job, trigger);
    47 
    48             scheduler.Start();
    49 
    50             //Thread.Sleep(TimeSpan.FromDays(2));
    51             //scheduler.Shutdown();
    52         }
    53     }
    54 
    55     public class TimeJob1 : IJob
    56     {
    57         public void Execute(IJobExecutionContext context)
    58         {
    59             Log.Info("", "调度任务TimeJob1开始工作");
    60         }
    61     }
  • 相关阅读:
    jupyter同时使用python2、3
    [python之ipython] jupyter notebook在云端服务器上开启,本地访问
    Transformer的PyTorch实现--转载
    二叉树中和为某一值的路径
    hadoop初识笔记
    大数据初识笔记
    mysql快速入门笔记
    118.Java反射-工厂模式
    117.Java观察者设计模式
    116.Java对象的拷贝
  • 原文地址:https://www.cnblogs.com/mojiejushi/p/13457684.html
Copyright © 2011-2022 走看看