【发布时间】:2020-09-10 09:12:44
【问题描述】:
直到今天,我一直使用 Quartz.Net 来运行 cron 作业,例如,每 5 分钟一次等等。现在我被要求从早上 07:00 开始每 8 小时运行一次特定的工作。这意味着每天将执行 3 次,上午 07:00 执行一次,下午 03:00 执行一次,晚上 11:00 执行一次。
愚蠢和最简单的方法是在早上 7:00 启动应用程序并将 cron 表达式设置为每 8 小时运行一次。有没有更好的办法?
我的sn-p代码如下
var timespanRecurringJob = configuration.GetValue<TimeSpan>("GSpedService:batchIntervalTracking");
logger.LogInformation($"BatchProcessorService starting with interval {timespanRecurringJob}");
IJobDetail job = JobBuilder.Create<TrackingUrlRecurringJob>()
.WithIdentity("trackingUrlRecurringJob", "group3") // name "myJob", group "group1"
.Build();
// Trigger the job to run now, and then every 40 seconds
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("triggerTracking", "group3")
.StartNow()
.WithSimpleSchedule(x => x
.WithInterval(timespanRecurringJob)
.RepeatForever())
.Build();
// Tell quartz to schedule the job using our trigger
await Scheduler.ScheduleJob(job, trigger, cancellationToken);
我会以某种方式在我的 appsettings.json 中获得该信息,而不是在源代码中进行硬编码
提前致谢
【问题讨论】:
标签: c# cron quartz.net