이전 방법은 일반적으로이 섹션은 일정을 설명 작업과 트리거의 프리젠 테이션에 사용되는 역할은 특정 날짜와 시간을 제외하는 것입니다.
일반적인 클래스의 달력
DailyCalendar는 일상적인 작업을 수행하기 위해 일정 시간을 제외
예를 들면 :
SCHE = VAR StdSchedulerFactory.GetDefaultScheduler ();
sche.Start (); // 작업이 더 이상 11 : 00 : 00 ~ 10 : 00 사이에 수행하지 않습니다 DailyCalendar 케일 = 새로운 새로운 DailyCalendar (DateBuilder.DateOf ( 10, 0, 0 ) .DateTime, DateBuilder. DateOf ( 11. 0, 0 .DateTime)); sche.AddCalendar ( " myCalendar ", 캐일, 참으로, 참으로);
선교 주간 매주 배제 WeeklyCalendar
예를 들면 :
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);
HolidayCalendar 排除某一天的任务的执行(如果涉及到同一天跨年的情况,需要多次添加不同年份)
例子:
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);
MonthlyCalendar 排除每月某一天的任务的执行
例子:
var sche = StdSchedulerFactory.GetDefaultScheduler();
sche.Start();
MonthlyCalendar cale = new MonthlyCalendar();
cale.SetDayExcluded(25, true); //排除每个月25号执行 sche.AddCalendar("myCalendar", cale, true, true);
AnnualCalendar 排除每年某一天的任务的执行
例子:
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);
CronCalendar 通过Cron表达式排除任务的执行
例子:
var sche = StdSchedulerFactory.GetDefaultScheduler();
sche.Start();
//只在营业时间执行8AM-5PM
CronCalendar cale = new CronCalendar("* * 0-7,18-23 ? * *"); sche.AddCalendar("myCalendar", cale, true, true);