Quartz.NET is an open source job scheduling framework.
Official website address: https: //www.quartz-scheduler.net/
latest version is 3.0.7, requires .NET Framework 4.5.2 and later versions above.
.NET Framework 4.0 and below, you can use version 2.6.2.
In this paper version is 2.6.2, the following entry is an example.
1, to create two simple tasks
Hello1Job.cs
public class Hello1Job : IJob { public void Execute(IJobExecutionContext context) { LogHelper.Info("hello1"); } }
Hello2Job.cs
public class Hello2Job : IJob { public void Execute(IJobExecutionContext context) { LogHelper.Info("hello2"); } }
2, create a task service
QuartzService.cs
// reference to the Quartz, Quartz.Impl; public class QuartzService { // scheduler IScheduler Scheduler; public QuartzService () { // Dispatcher Factory ISchedulerFactory Factory = new new the StdSchedulerFactory (); Scheduler = factory.GetScheduler (); } public void the Start () { // create a task IJobDetail the jobs that job1 = JobBuilder.Create <Hello1Job> (). WithIdentity ( new new JobKey ( " the jobs that job1 ".)) Build (); // create a trigger, configure three seconds to perform a ITrigger trigger1 = TriggerBuilder.Create () WithCronSchedule (. " 0/3 * * * *? " ) .Build (); // create a task IJobDetail = JobBuilder.Create JOB2 <Hello2Job> () WithIdentity (. new new JobKey ( " JOB2 " )) the Build ();. // create a trigger arranged to perform a 5 seconds . ITrigger Trigger2 = TriggerBuilder.Create () WithCronSchedule ( " 0 ? / 5 * * * * " ) .build (); // add tasks to the scheduler and trigger, if you need more than you can bind multiple scheduler.ScheduleJob (job1, trigger1); scheduler.ScheduleJob (JOB2, Trigger2); // start carried out scheduler.Start(); } public void Shutdown() { if (scheduler != null) { scheduler.Shutdown(true); } } }
3, call
QuartzService quartzJob = new QuartzService(); quartzJob.Start();
Results are as follows:
2019-06-03 09:52:39,667 [DefaultQuartzScheduler_Worker-1] INFO logging - hello1 2019-06-03 09:52:40,000 [DefaultQuartzScheduler_Worker-2] INFO logging - hello2 2019-06-03 09:52:42,000 [DefaultQuartzScheduler_Worker-3] INFO logging - hello1 2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-4] INFO logging - hello1 2019-06-03 09:52:45,000 [DefaultQuartzScheduler_Worker-5] INFO logging - hello2 2019-06-03 09:52:48,000 [DefaultQuartzScheduler_Worker-6] INFO logging - hello1 2019-06-03 09:52:50,000 [DefaultQuartzScheduler_Worker-7] INFO logging - hello2 2019-06-03 09:52:51,000 [DefaultQuartzScheduler_Worker-8] INFO logging - hello1 2019-06-03 09:52:54,000 [DefaultQuartzScheduler_Worker-9] INFO logging - hello1 2019-06-03 09:52:55,000 [DefaultQuartzScheduler_Worker-10] INFO logging - hello2