0

我想在不同的预定时间执行相同的工作。这是我写的一个示例:

  ISchedulerFactory schedFact = new StdSchedulerFactory();

    var setoftrigs = new HashSet<ITrigger>();
    for (int x=0; x<=2; x++)
    {
        setoftrigs.Add(TriggerBuilder.Create().WithIdentity("trigger" + x.ToString(), "group1").WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(21, 44+x)).Build());                
    }
    
    // get a scheduler
    IScheduler sched = schedFact.GetScheduler().GetAwaiter().GetResult();
    sched.Start();
    
    // create job
    IJobDetail job = JobBuilder.Create<RunJob>()
    .WithIdentity("job1", "group1")
    .Build();
   
     sched.ScheduleJob(job, setoftrigs, false);

问题是在某些时间作业没有执行。

但如果我这样做:

ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(21, 49))
.Build();

sched.ScheduleJob(job, trigger);

...它工作正常。

我想要实现的是在应该执行作业时有一个触发器列表。怎么做?

4

0 回答 0