The first step: Install-Package Quartz
namespace ProjectEdb { class Program { static void Main(string[] args) { //例子1 QuartzJob.CreateJob("test", "zkb", "0 */1 * * * ?").GetAwaiter().GetResult(); //例子2 //RunProgram().GetAwaiter().GetResult(); } } }
namespace ProjectEdb.Models { public class QuartzJob { public static async Task CreateJob(string name, string group, string cron) { ISchedulerFactory schedulerFactory = new StdSchedulerFactory(); IScheduler scheduler = await schedulerFactory.GetScheduler(); DateTimeOffset startTime = DateBuilder.NextGivenSecondDate(DateTime.Now, 1); DateTimeOffset endTime = DateBuilder.NextGivenMinuteDate(DateTime.Now, 10); IJobDetail job = JobBuilder.Create<EdbQuartz>() .WithIdentity(name, group) .Build(); ICronTrigger cronTrigger = (ICronTrigger)TriggerBuilder.Create() .StartAt(startTime) .EndAt(endTime) .WithIdentity(name, group) .WithCronSchedule(cron) .Build(); awaitscheduler.ScheduleJob (the Job, CronTrigger); the await scheduler.Start (); Console.ReadLine (); // this sentence in a console application in net core is sure to add, otherwise, the output of the console box look no flash } } }
namespace ProjectEdb.Models { public class EdbQuartz: IJob { public async Task Execute(IJobExecutionContext context) { string path = @"D:\EDBStockInfo_Files\2019\1.txt"; string value = DateTime.Now.ToString(); if (File.Exists(path)) { //File.Delete(path); } StreamWriter streamWriter = new StreamWriter(path, true); await streamWriter.WriteLineAsync(value); streamWriter.Flush(); streamWriter.Close(); } } }