zoukankan      html  css  js  c++  java
  • Quartz.NET常用方法 02

     上一篇里介绍了Job和Trigger的常用方法,这一节将介绍Calendar,它的作用是排除特定的日期时间。

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

  • 相关阅读:
    [iOS]delegate和protocol
    Objective-c中@interface、@implementation、@protocal
    iOS应用的真机调试
    2016最新Java笔试题集锦
    Java面试题相关内容
    JSP面试题及答案
    JAVA面试题相关基础知识
    mysql workbench建表时PK,NN,UQ,BIN,UN,ZF,AI
    Java中equals和==的区别
    java的Arrays类的应用
  • 原文地址:https://www.cnblogs.com/AlexanderArima/p/12106653.html
Copyright © 2011-2022 走看看