DailyAtHourAndMinute()
有效,但为什么StartNow()
会被忽略?
TriggerBuilder.Create().WithIdentity("engineTriggerII", engineGroup).StartNow().WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 0)).Build();
版本2.3.3.0
答案 0 :(得分:1)
这是预期的行为。
你告诉你的触发器每天午夜开火,所以它现在永远不会开火......除非你在午夜运行它。
我猜你必须创建2个触发器才能达到你想要的效果。
您可以使用以下代码检查触发器的运行时间:
private static void GetNextXFireTimes(ITrigger trigger, int counts)
{
var dt = trigger.GetNextFireTimeUtc();
for (int i = 0; i < (counts-1); i++)
{
if (dt == null)
{
break;
}
Console.WriteLine(dt.Value.ToLocalTime());
dt = trigger.GetFireTimeAfter(dt);
}
}
你可以在安排好工作后给它打电话:
Scheduler.ScheduleJob(job, trigger);
GetNextXFireTimes(trigger, 100);
你应该看到这样的东西:
18/09/2015 00:00:00 +01:00
19/09/2015 00:00:00 +01:00
20/09/2015 00:00:00 +01:00
21/09/2015 00:00:00 +01:00
22/09/2015 00:00:00 +01:00
23/09/2015 00:00:00 +01:00
24/09/2015 00:00:00 +01:00
25/09/2015 00:00:00 +01:00
26/09/2015 00:00:00 +01:00
27/09/2015 00:00:00 +01:00
28/09/2015 00:00:00 +01:00
29/09/2015 00:00:00 +01:00
30/09/2015 00:00:00 +01:00
01/10/2015 00:00:00 +01:00