Quartz.NET作为一款定时框架,它的最小可运行程序如下:
var scheduler = StdSchedulerFactory.GetDefaultScheduler();
scheduler.Start();
//Job执行的任务
var job = JobBuilder.Create<MyJob>().Build();
//Schedule计划表,可以设置调用次数,调用间隔
//Trigger触发器,可以设置调用开始,结束时间,优先级
var trigger = TriggerBuilder.Create().WithSimpleSchedule(
m => m.WithIntervalInSeconds(1).WithRepeatCount(1))
.StartNow()//.EndAt(DateTimeOffset.Now.AddSeconds(10))
.Build();
scheduler.ScheduleJob(job, trigger);
/// <summary>
/// 自定义任务
/// </summary>
public class MyJob : IJob
{
public void Execute(IJobExecutionContext context)
{
//实现具体的业务逻辑
}
}
public JobBuilder WithIdentity(string name)
{
//new一个JobKey,name是key的名称,group名称是null
key = new JobKey(name, null);
return this;
}
public JobBuilder SetJobData(JobDataMap newJobDataMap)
{
jobDataMap = newJobDataMap;
return this;
}
public JobBuilder UsingJobData(string key, string value)
{
jobDataMap.Put(key, value);
return this;
}
//秒 分 时 天 月 年 周
//1. 天或者周必须有一个是?(?表示模糊)
//2. * 表示所有值即,秒位为*表示每秒执行一次
//3. - 表示范围,分钟位为10-12表示每个小时的10,11,12分执行一次
//4. , 表示每个值即,分钟位为10,20,30表示每个小时的10,20,30分执行一次
//5. / 表示递增,秒位为0/5表示0,5,10,15,20,25,30,35,40,45,50,55秒执行一次
//例子:
// * * * * * ? => 每秒执行一次
// 0/5 * * * * ? => 5s执行一次
// 0 * * * * ? => 1min执行一次
// 0 0 1 * * ? => 每个月1号执行一次
// 地址:https://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/crontrigger.html
原文:https://www.cnblogs.com/AlexanderArima/p/12090676.html