安装程序包:
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<TestJob>()
.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!");
}
}
}
参考: