上一篇里介绍了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);
 
 

最新文章

  1. heredoc技术
  2. nginx中error_page没有生效(nginx+passenger+rails)
  3. Android开发快速入门(环境配置、Android Studio安装)
  4. memcached完全剖析–1. memcached的基础
  5. poj 1182 食物链 (并查集)
  6. Oracle存储过程的调用(返回参数)
  7. 树莓派raspbian安装配置(基本配置+中文配置+远程桌面+lighttpd+php+mysql)
  8. Java Lambda简明教程(一)
  9. 【转】 CoreGraphics QuartzCore CGContextTranslateCTM 用法
  10. OLE-DB 操作excel 基本
  11. 获取java byte的无符号数值
  12. List-----Array
  13. python模块的打包setuptools
  14. Angular开发实践(二):HRM运行机制
  15. Nancy in .Net Core学习笔记 - 视图引擎
  16. modelform的操作以及验证
  17. 好的封装 vs 好的复用
  18. ES6:export default 和 export 区别
  19. 数据加密之DES加密
  20. read 命令详解

热门文章

  1. 编译安装php依赖软件libiconv-1.14报错及其解决办法
  2. CCS过渡和动画
  3. 教你快速使用数据可视化BI软件创建4S店销售数据大屏
  4. 题解【[USACO05NOV]奶牛玩杂技】
  5. C# 利用委托事件进行窗体间的传值(简化)
  6. 正规式与正规集,DFA与NFA
  7. mybatis + oracle 自增 结合navicate
  8. 【python基础语法】多重循环嵌套,函数(第6天课堂笔记)
  9. AQS源码分析总结
  10. 【新人赛】阿里云恶意程序检测 -- 实践记录11.10 - XGBoost学习 / 代码阅读、调参经验总结