上一篇里介绍了Job和Trigger的经常使用方法,这一节将介绍Calendar,它的做用是排除特定的日期时间。ui
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); //使任务在10点到11点间再也不执行 DailyCalendar cale = new DailyCalendar( DateBuilder.DateOf(10, 0, 0).DateTime, DateBuilder.DateOf(11, 0, 0).DateTime ); sche.AddCalendar("myCalendar", cale, true, true);
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); WeeklyCalendar cale = new WeeklyCalendar(); cale.SetDayExcluded(DayOfWeek.Thursday, true); //让星期四不触发Schedule //cale.SetDayExcluded(DayOfWeek.Thursday, false); //让星期四触发Schedule sche.AddCalendar("myCalendar", cale, true, true);
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); HolidayCalendar cale = new HolidayCalendar(); cale.AddExcludedDate(DateTime.Now.AddYears(-1)); //排除去年的今天不处理 cale.AddExcludedDate(DateTime.Now); //排除今天不处理 sche.AddCalendar("myCalendar", cale, true, true);
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); MonthlyCalendar cale = new MonthlyCalendar(); cale.SetDayExcluded(25, true); //排除每一个月25号执行 sche.AddCalendar("myCalendar", cale, true, true);
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); AnnualCalendar cale = new AnnualCalendar(); //12月25号不执行 cale.SetDayExcluded(new DateTimeOffset(2018, 12, 25, 12, 0, 0, TimeSpan.FromHours(8)), true); sche.AddCalendar("myCalendar", cale, true, true);
var sche = StdSchedulerFactory.GetDefaultScheduler(); sche.Start(); //只在营业时间执行8AM-5PM CronCalendar cale = new CronCalendar("* * 0-7,18-23 ? * *"); sche.AddCalendar("myCalendar", cale, true, true);