feat(新增): 按照日历执行任务
This commit is contained in:
parent
7783b97141
commit
55e3509d1f
|
@ -87,8 +87,8 @@ public class JobService : IJobService
|
|||
.StoreDurably() // 设置作业为持久的
|
||||
.WithIdentity("simpleJob", "简单的JOB")
|
||||
.Build();
|
||||
|
||||
scheduler.AddJob(jobDetail,true).GetAwaiter().GetResult();
|
||||
|
||||
scheduler.AddJob(jobDetail, true).GetAwaiter().GetResult();
|
||||
|
||||
var trigger = TriggerBuilder.Create()
|
||||
.ForJob(jobDetail)
|
||||
|
@ -97,14 +97,30 @@ public class JobService : IJobService
|
|||
.StartNow()
|
||||
// TODO StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(20, 0)):触发器从每天的20:00(晚上8点)开始。
|
||||
// TODO EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(22, 0)):触发器在每天的22:00(晚上10点)结束。
|
||||
// TODO WithIntervalInSeconds(5):在开始和结束时间之间,触发器将每5秒触发一次作业。
|
||||
// TODO WithIntervalInSeconds(2):在开始和结束时间之间,触发器将每2秒触发一次作业。
|
||||
.WithDailyTimeIntervalSchedule(x => x.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(16, 0))
|
||||
.EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(22, 0))
|
||||
// 设置工作时间在每周的星期几
|
||||
.OnDaysOfTheWeek(DayOfWeek.Sunday, DayOfWeek.Monday, DayOfWeek.Thursday)
|
||||
.WithIntervalInSeconds(2)
|
||||
)
|
||||
.Build();
|
||||
|
||||
var trigger2 = TriggerBuilder.Create()
|
||||
.ForJob(jobDetail)
|
||||
.UsingJobData("trigger", "trigger值")
|
||||
.WithIdentity("testTrigger", "测试发出器")
|
||||
.StartNow()
|
||||
// WithIntervalInDays(1):触发器将按照日历间隔,每天触发一次。
|
||||
// PreserveHourOfDayAcrossDaylightSavings(true):这个选项指示调度器在夏令时变更时保持小时不变。例如,如果作业在凌晨2点执行,夏令时开始或结束时,作业仍然会在凌晨2点执行,调度器会自动调整时间以适应夏令时的变化。
|
||||
// SkipDayIfHourDoesNotExist(true):如果由于夏令时变更导致指定的小时不存在(例如,在夏令时开始时,从凌晨1点跳到凌晨3点),调度器将跳过这一天,不会执行作业。
|
||||
.WithCalendarIntervalSchedule(x =>
|
||||
x.WithIntervalInDays(1)
|
||||
.PreserveHourOfDayAcrossDaylightSavings(true)
|
||||
.SkipDayIfHourDoesNotExist(true)
|
||||
)
|
||||
.Build();
|
||||
|
||||
scheduler.ScheduleJob(trigger).GetAwaiter().GetResult();
|
||||
scheduler.Start().GetAwaiter().GetResult();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue