[英]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.