1.引用Quartz,Quartz.Impl的包
public static async Task Main(string[] args)
{
//1、调度器
ISchedulerFactory sf = new StdSchedulerFactory();
IScheduler sched = await sf.GetScheduler();
//2、创建一个任务
IJobDetail job = JobBuilder.Create<BillTask>()
.WithIdentity("job1", "group1")
.Build();
//3、创建一个触发器
//DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule("0 */2 * * * ?")//"0 0 13 * * ?")//分钟 "0 */2 * * * ?"//秒 "0/5 * * * * ?" //5秒执行一次
.Build();
await sched.ScheduleJob(job, trigger);
//启动任务
await sched.Start();
Console.ReadLine();
}
2.实现IJob的接口
/// <summary>
/// 定时任务
/// </summary>
public class BillTask : IJob
{
/// <summary>
/// 执行业务
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public async Task Execute(IJobExecutionContext context)
{
//也可以是方法
await SmartContext.Current.GetService<ICapital>().dot0AM();
}
}
3.执行业务方法
public async Task dot0AM()
{
//方法内容
}