安装程序包:
install-package Quartz
注:项目自身的 framework 不能低于 4.6.1
难点是如何根据实际需要设置触发器。
- using Quartz;
- using Quartz.Impl;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace QuartzDemo
- {
- class Program
- {
- static async Task Main(string[] args)
- {
- //创建一个工作
- IJobDetail job = JobBuilder.Create
() - .WithIdentity("TestJob", "Test")
- .Build();
-
- //创建一个触发条件
- ITrigger trigger = TriggerBuilder.Create()
- .WithIdentity("TestJobTrigger", "Test")
- .WithSimpleSchedule(x =>{ x.WithIntervalInSeconds(3).RepeatForever(); }) //每3秒执行一次
- //.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(9,50)) //上午 9 点 50 执行一次
- .Build();
-
- StdSchedulerFactory factory = new StdSchedulerFactory();
- //创建任务调度器
- IScheduler scheduler = await factory.GetScheduler();
- //启动任务调度器
- await scheduler.Start();
-
- //将创建的任务和触发器条件添加到创建的任务调度器当中
- await scheduler.ScheduleJob(job, trigger);
- Console.Read();
- }
- }
-
- public class TestJob : IJob
- {
- public async Task Execute(IJobExecutionContext context)
- {
- await Console.Out.WriteLineAsync($"{DateTime.Now}: Hello!");
- }
- }
- }
参考: