简体   繁体   中英

How to schedule a task that runs everyday in 13.00 h

I'm using Quartz library to run a schedule task.I used it like this

ISchedulerFactory scheduleFact = new StdSchedulerFactory();
            IScheduler scheduler = scheduleFact.GetScheduler();
            scheduler.Start();

            IJobDetail job = JobBuilder.Create<MyJob>()
                            .WithIdentity("myjob", "group 1")
                            .Build();


            ITrigger trigger = TriggerBuilder.Create()
                            .WithIdentity("mytrigger", "group 1")
                            .StartNow()
                            .WithSimpleSchedule(x => x
                                .WithIntervalInSeconds(60*60*12)
                                .RepeatForever())
                            .Build();

            scheduler.ScheduleJob(job, trigger);

this works fine.that means the schedule runs for every 12 hours.but what I want is to run the task everyday when the time is 13.00.how can I do that.hope your help.

var trigger = TriggerBuilder.Create()
  .WithDailyTimeIntervalSchedule(s => s
      .OnEveryDay()
      .StartingDailyAt(TimeOfDay.HourAndMinuteOfDay(13, 00)))
      .EndingDailyAfterCount(1))
.Build();

Tipp: Output the next 10 runs on console for debugging purpose.

var times = TriggerUtils.ComputeFireTimes(trigger as IOperableTrigger, null, 10);
foreach (var time in times) Console.WriteLine(time);

You can create a job with WithSchedule and use CronScheduleBuilder to define the job frequency -

ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("mytrigger", "group1")
    .WithSchedule(CronScheduleBuilder.DailyAtHourAndMinute(13, 00))
    .ForJob(myJobKey)
    .Build();

Or, alternatively you can also use Cron expression while creating your job with WithCronSchedule

ITrigger trigger = TriggerBuilder.Create()
    .WithIdentity("mytrigger", "group1")
    .WithCronSchedule("0 00 13 * * ?")
    .ForJob("myJob", "group1")
    .Build();

More details can be found here .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM