Quartz.NET StartNow不与WithDailyTimeIntervalSchedule一起使用

时间:2017-08-22 19:41:53

标签: c# quartz.net

            ITrigger trigger = TriggerBuilder.Create()
                                .WithIdentity("trigger1", "group1")
                                .WithDailyTimeIntervalSchedule(x => x
                                    .WithIntervalInHours(2)
                                    .OnEveryDay()
                                    .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(8, 0))
                                    .EndingDailyAt(TimeOfDay.HourAndMinuteOfDay(23, 00)))
                                .StartNow()
                                .Build();

上述代码的问题是StartNow无效。它运行正常,但仅在2小时后运行。我不能马上运行它。

StartNow正在使用WithSimpleSchedule,但不会使用.WithDailyTimeIntervalSchedule

1 个答案:

答案 0 :(得分:0)

看起来WithDailyTimeIntervalSchedule不是您需要的。如果指定开始时间= 8 AM,结束时间= 11 PM,间隔= 2小时,则作业将安排在上午8点,上午10点,下午12点,下午2点,下午4点,下午6点,下午8点和10点准确运行PM。

作为解决方案,您可以创建两个触发器:

  1. 如果当前时间是在上午8点到晚上11点之间,请创建现在触发的触发器,现在+ 2小时,现在+ 4小时,今天晚上11点停止。
  2. 第二个触发器将在上午8点(上午10点)开始,从下一个上午8点(今天或明天)开始。