Quartz.NET - 在一天的特定时间触发

时间:2014-04-09 18:26:00

标签: triggers quartz.net

我需要在当天运行单个作业的小时数,如下所示:

["00:05", "01:42", "04:21", "17:57"]

正如你所看到的那样是任意时间,所以我不能使用Cron时间表。我一直在搜索如何为触发器添加多个小时,或者如何在同一个作业中使用多个触发器,但我还没有找到任何方法来实现此目的。

那么,如何在数组指定的时间运行相同的作业?

1 个答案:

答案 0 :(得分:8)

有多个工作触发器是关键。

var job = JobBuilder.Create<TheJobType>()
    .StoreDurably(true)
    .WithIdentity("the-job-all-are-going-to-execute")
    .Build();

scheduler.AddJob(job, false);

var trigger1 = TriggerBuilder.Create()
                                    .ForJob(job)
                                    .WithIdentity("trigger1")
                                    .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(0, 5))
                                    .Build();
scheduler.ScheduleJob(trigger1);


var trigger2 = TriggerBuilder.Create()
                                    .ForJob(job)
                                    .WithIdentity("trigger2")
                                    .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(1, 42))
                                    .Build();
scheduler.ScheduleJob(trigger2);

.... etc ...