繁体   English   中英

如何安排每天13.00小时运行的任务

[英]How to schedule a task that runs everyday in 13.00 h

我正在使用Quartz库来运行计划任务。

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);

这很好,这意味着计划每12个小时运行一次,但是我想要的是每天在13:00时运行任务,我该怎么办。希望您的帮助。

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

提示:在控制台上输出接下来的10个运行以进行调试。

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

您可以创建一个作业WithSchedule和使用CronScheduleBuilder定义工作频率-

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

或者,也可以在使用WithCronSchedule创建作业时使用Cron表达式

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

可以在此处找到更多详细信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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