簡體   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