QuartZ.NET
Quartz是一个定时任务调度类库,一般用来进行定时作业管理。最早是JAVA的一个开源项目,QuartZ.net 是其的一个.NET 版本
- 通过使用Nuget引入程序包 QuartZ 使用
- 核心概念 : Scheduler、Job、JobDetail、Trigger
- Scheduler 为调度时间轴,用户通过实现 IJob接口编写作业逻辑,JobDetail 描述Job的扩展细节信息,并基于JobDetail 来创建新的Job,trigger 用于描述Job的触发时机
使用步骤
创建Scheduler
ISchedulerFactory schedFact = new StdSchedulerFactory();
IScheduler sched = await schedFact.GetScheduler();
await sched.Start();
创建作业
- 通过继承实现IJob接口自定义作业的逻辑代码
public class SimpleJob : IJob
{
public Task Execute(IJobExecutionContext context)
{
return Task.Run(() =>
{
//TODO
});
}
}
- 构建作业
IJobDetail job = JobBuilder.Create<SimpleJob>()
.WithIdentity("job1", "group1")
.Build();
3.配置trigger
ISimpleTrigger trigger = (ISimpleTrigger)TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithSimpleSchedule(x => x.WithIntervalInSeconds(10).RepeatForever())
.ForJob("job1", "group1")
.Build();
4.启动作业
await sched.ScheduleJob(job, trigger);