一开始用的timer类直接写的 简单粗暴,后来才发现大家都用quartz 其实也是一个封装的timer 但是据说比较准确 自己测试了一下的确挺准的 就改了
参考教材如下:
https://www.cnblogs.com/pingming/p/4999228.html
https://www.cnblogs.com/best/p/7658573.html
https://blog.csdn.net/l1394049664/article/details/81538732
前两个是quartz的 最后一个是关于cron expressions 时间设置的
简单介绍一下:
1:nuget下包 quartz 我用的2.0的
2:在global中编写:
//调度器
IScheduler scheduler;
//调度器工厂
ISchedulerFactory factory;
//创建一个调度器
factory = new StdSchedulerFactory();
scheduler = factory.GetScheduler();
scheduler.Start();
//2、创建一个任务
IJobDetail job = JobBuilder.Create<hqs_utills.TimeJob>().WithIdentity("job1", "group1").Build();
//3、创建一个触发器
//DateTimeOffset runTime = DateBuilder.EvenMinuteDate(DateTimeOffset.UtcNow);
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithCronSchedule("0 0/2 * * * ?") //5秒执行一次
//.StartAt(runTime)
.Build();
//4、将任务与触发器添加到调度器中
scheduler.ScheduleJob(job, trigger);
//5、开始执行
scheduler.Start();
3:新添工作类即定时任务:
public class TimeJob : IJob
{
private QueService queService = new QueService();
public void Execute(IJobExecutionContext context)
{
//向c:\Quartz.txt写入当前时间并换行
queService.insertQue();
File.AppendAllText(@"D:\Quartz.txt", DateTime.Now + Environment.NewLine);
}
}