一、介绍

  Quartz.Net是根据Java的Quartz用C#改写而来,最新的版本是3.0.6,源码在https://github.com/quartznet/quartznet。主要作用是做一些周期性的工作,或者定时工作。比如每天凌晨2点对前一天的数据统计。

二、简单的案例

  以WebApi项目举例,用VS脚手架功能新建WebApi项目。

复制代码
public void ConfigureServices(IServiceCollection services) {      services.AddMvc();      services.AddSingleton<ISchedulerFactory, StdSchedulerFactory>();//注册ISchedulerFactory的实例。  }
复制代码
复制代码
   [Route("api/[controller]")]     public class ValuesController : Controller     {         private readonly ISchedulerFactory _schedulerFactory;         private IScheduler _scheduler;         public ValuesController(ISchedulerFactory schedulerFactory)         {             this._schedulerFactory = schedulerFactory;         }         [HttpGet]         public async Task<string[]> Get()         {
       //1、通过调度工厂获得调度器 _scheduler
= await _schedulerFactory.GetScheduler();
       //2、开启调度器
await _scheduler.Start();        //3、创建一个触发器 var trigger = TriggerBuilder.Create() .WithSimpleSchedule(x => x.WithIntervalInSeconds(2).RepeatForever())//每两秒执行一次 .Build();        //4、创建任务 var jobDetail = JobBuilder.Create<MyJob>() .WithIdentity("job", "group") .Build();        //5、将触发器和任务器绑定到调度器中 await _scheduler.ScheduleJob(jobDetail, trigger); return await Task.FromResult(new string[] { "value1", "value2" }); }
}
复制代码
复制代码
public class MyJob : IJob