在你能使用调度器前,它需要被实例化(谁会猜到呢?)。做这个,你需要一个ISchedulerFactory的实现器。
一旦一个调度器被实例化,它就可以被启动,处于待用模式和关闭。请注意,一个调度器一旦被关闭,它在没有被重新实例化前是不能被重启的。触发器不会触发(工作不会执行)直到调度器被启动,而不是它处于暂停状态。
下面是一个简捷的代码片段,演示启动一个调度器,并计划一个要执行的作业:
使用Quartz.NET
// construct a scheduler factory StdSchedulerFactory factory = new StdSchedulerFactory(); // get a scheduler IScheduler scheduler = await factory.GetScheduler(); await scheduler.Start(); // define the job and tie it to our HelloJob class IJobDetail job = JobBuilder.Create<HelloJob>() .WithIdentity("myJob", "group1") .Build(); // Trigger the job to run now, and then every 40 seconds ITrigger trigger = TriggerBuilder.Create() .WithIdentity("myTrigger", "group1") .StartNow() .WithSimpleSchedule(x => x .WithIntervalInSeconds(40) .RepeatForever()) .Build(); await scheduler.ScheduleJob(job, trigger); // You could also schedule multiple triggers for the same job with // await scheduler.ScheduleJob(job, new List<ITrigger>() { trigger1, trigger2 }, replace: true);
正像你看到的,使用Quartz.NET相当简单。在第二课我们将给出一个关于工作和触发器的快速的概述,以至于你能更全面的明白这个例子。