Quartz.NET經常使用方法 02

 上一篇裏介紹了Job和Trigger的經常使用方法,這一節將介紹Calendar,它的做用是排除特定的日期時間。ui

 
Calendar的經常使用類
DailyCalendar 排除天天某個時間段任務的執行
例子:
        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); 
 
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);
相關文章
相關標籤/搜索