我正在尝试创建一个触发器:
在一周的选定日期(比如周一,周三,周四)运行一份工作,并在这几天的Y分钟内重复这个工作X小时或分钟。
我有一个在指定日期正确触发的cron触发器,但我无法让重复间隔工作。
感谢
答案 0 :(得分:3)
如果问题是“如何创建仅在某些特定时间触发的触发器,在X小时/分钟内重复播放,并且间隔为Y分钟”,则Quartz.NET 1.0无法实现。
但是,如果您愿意使用Quartz.NET 2.0(目前处于测试阶段2),您可以使用日历和DailyTimeIntervalSchedule轻松完成:
WeeklyCalendar cal = new WeeklyCalendar();
cal.SetDayExcluded(DayOfWeek.Monday, true);
sched.AddCalendar("excludedDays", cal, false, false);
var trigger = TriggerBuilder.Create()
.WithIdentity("test", "group")
.WithDailyTimeIntervalSchedule(
x => x.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(14, 0))
.EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(15, 0))
.WithIntervalInSeconds(5))
.ModifiedByCalendar("excludedDays")
.Build();
答案 1 :(得分:1)
您无法宣布工作时间,但您可以轻松地在工作中确定工作时间。
无论如何,根据您的规范安排作业的cron表达式是:
35 30 1/2 ? * MON,WED,THU *
1/2
表示该作业将从凌晨1:30:35开始每2小时运行一次。
你可以在this useful website.上使用cron表达式它使用Quartz的原始Java版本来创建和验证表达式,但是.net版本是Java的一个端口,因此结果应该是有效的for quartz.net。