2016-06-07 63 views
1

我使用Quartz庫運行時間表task.I使用它像這樣如何安排,在13.00^h

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

這個作品fine.that日常運行的任務意味着時間表每12運行hours.but我想要的是每天運行的任務時間13.00.how我可以做那個。幫助你。

+1

http://www.quartz-scheduler.net/documentation/quartz-2.x/tutorial/simpletriggers.html – Rob

+0

你會使用'StartAt(日期)''那裏指定date'未來(最近)13:00。然後,每24小時重複一次,永遠重複。 – Rob

回答

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

您可以WithSchedule創建一個作業,並使用CronScheduleBuilder定義工作頻率 -

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

,或者您也可以使用cron表達,而與WithCronSchedule

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

更多的創建工作詳情可以在here找到。