我需要通过开始特定时间每小时触发一份工作。例如,它从晚上10:00开始,并在晚上11:00,00:00,01:00,02:00(依此类推)运行。
我已经尝试了两个选项但是没有触发工作。
//second try
DateTime now = DateTime.Now;
DateTime dt = new DateTime(now.Year, now.Month, now.Day, Hour, Minutes 0);
trigger = TriggerBuilder.Create()
.WithIdentity("job1", "JobExample")
.WithSimpleSchedule(x => x
.WithIntervalInHours(1))
.StartAt(new DateTimeOffset(dt))
//first try
trigger = TriggerBuilder.Create()
.WithIdentity("job1", "JobExample")
.WithDailyTimeIntervalSchedule( x => x.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(Hour, Minutes))
.WithIntervalInHours(1))
我想你错过了
.RepeatForever()
trigger = TriggerBuilder.Create()
.WithIdentity("trigger8") // because group is not specified, "trigger8" will be in the default group
.StartAt(DateBuilder.EvenHourDate(null)) // get the next even-hour (minutes and seconds zero ("00:00"))
.WithSimpleSchedule(x => x
.WithIntervalInHours(2)
.RepeatForever())
// note that in this example, 'forJob(..)' is not called
// - which is valid if the trigger is passed to the scheduler along with the job
.Build();
scheduler.scheduleJob(trigger, job);
尝试使用cron表达式。
trigger = TriggerBuilder.Create()
.WithIdentity("trigger3", "group1")
.WithCronSchedule("0 0 0,1,2,3,4,5,6,7,8,9,10,11,22,23 ? * * *")
.ForJob("myJob", "group1")
.Build();