如何解决从上午07:00开始,每8小时运行Quartz.NET进行特定作业
直到今天,我已经使用Quartz.Net运行cron作业,例如,每5分钟运行一次,依此类推。现在,我被要求从上午07:00开始每8小时执行一次特定的工作。这意味着每天将执行3次,一次在07:00 AM,一次在03:00 PM,最后一次在11:PM。
最愚蠢和最简单的方法是在07:00 AM启动应用程序,并将cron表达式设置为每8小时运行一次。有更好的方法吗?
我的代码段如下
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中获得该信息,而不是在源中进行硬编码
预先感谢
解决方法
此cron将在所需的时间执行您的工作,而不必担心首次执行时间
.WithCronSchedule("0 1 7,15,23 * * ?")
可以通过IConfiguration.GetValue从appsettings.json获取值
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。