Quartz C#每小时运行一次

问题描述 投票:0回答:2

我需要通过开始特定时间每小时触发一份工作。例如,它从晚上10:00开始,并在晚上11:00,00:00,01:00,02:00(依此类推)运行。

我已经尝试了两个选项但是没有触发工作。

//second try

    DateTime now = DateTime.Now;
            DateTime dt = new DateTime(now.Year, now.Month, now.Day, Hour, Minutes 0);
            trigger = TriggerBuilder.Create()
            .WithIdentity("job1", "JobExample")
            .WithSimpleSchedule(x => x
                .WithIntervalInHours(1))
             .StartAt(new DateTimeOffset(dt))

//first try

        trigger = TriggerBuilder.Create()
        .WithIdentity("job1", "JobExample")
        .WithDailyTimeIntervalSchedule( x => x.StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(Hour, Minutes))
         .WithIntervalInHours(1))
c# quartz.net
2个回答
0
投票

我想你错过了

.RepeatForever()

trigger = TriggerBuilder.Create()
.WithIdentity("trigger8") // because group is not specified, "trigger8" will be in the default group
.StartAt(DateBuilder.EvenHourDate(null)) // get the next even-hour (minutes and seconds zero ("00:00"))
.WithSimpleSchedule(x => x
    .WithIntervalInHours(2)
    .RepeatForever())
// note that in this example, 'forJob(..)' is not called 
//  - which is valid if the trigger is passed to the scheduler along with the job  
.Build();

scheduler.scheduleJob(trigger, job);

simpletriggers


0
投票

尝试使用cron表达式。

trigger = TriggerBuilder.Create()
    .WithIdentity("trigger3", "group1")
    .WithCronSchedule("0 0 0,1,2,3,4,5,6,7,8,9,10,11,22,23 ? * * *")
    .ForJob("myJob", "group1")
    .Build();

Cronmaker Freeformatter cron expression

© www.soinside.com 2019 - 2024. All rights reserved.