Quartz.NET学习笔记(四) 计划任务触发器
通常来说计划任务触发器会比简单触发器的使用频率高很多。如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午12:00执行任务,或者每天早上9点执行任务。
计划任务表达式(Cron Expressions)
计划任务需要使用计划任务表达式(Cron Expressions)来定义。计划任务表达式是一个字符串,它又7个子字符串组合而成,这7个子字符串有空格符间隔,分别表示计划任务触发时间的7个部分
第一位 – 触发时间的秒数
第二位 – 触发时间的分钟数
第三位 – 触发时间的小时数
第四位 – 触发日期是一个月中的哪几天
第五位 – 触发月份是哪几个月
第六位 – 触发日期是一周当中的哪些天(周一 – 周日)
第七位 – 触发的年份(可选参数), 用的比较少
例如:
0 0 12 ? * WED
表示每周三中午12:00执行一次任务
计划任务表达式的7位子字符串,每一位都可以使用范围表达式或者指定值
|
|
可选值 |
|
第一位 |
0-59 |
|
第二位 |
0-59 |
|
第三位 |
0-23 |
|
第四位 |
0-31 |
|
第五位 |
JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV,DEC或者0-11 |
|
第六位 |
SUN, MON, TUE, WED, THU, FRI, SAT或者1-7, 1表示周日。这里也可以使用范围, 例:”MON-FRI”, “MON-WED, SAT” |
|
|
通配符
计划任务表达式中可以使用通配符
|
通配符 |
|
|
* |
所有可选值 |
|
? |
表明没有特定值,只能用于第四位(day of month)和第六位(day of week) |
|
/ |
增量,例如分钟位字符串0/15,表示从0开始,每15分钟触发一次,即每当分钟数为0,15,30,45时候触发任务 |
|
L |
只能用于第四位(day of month)和第六位(day of week) · L单独使用在第四位,表示指定月份的最后一天 · L 单独使用在第六位,表示周六 · L 使用在第四位,但是前面有指定数字,表示指定月份的倒数第几天,例如6L, 就是指定月份的倒数第6天 · L使用在第六位,但是前面有指定数字,表示指定月份的最后一个周几,例如FRIL, 表示指定月份最后一个周五 |
|
W |
只能用于第五位, W在这里的意思就是取指定月份离指定之天最近的Weekday(Mon-Fri), 例如15W, 表示离指定月份第15天最近的非周末日期 |
|
# |
只能用于第六位,表示指定月份的第几个星期的某天,例如6#3, 或者FRI#3都是表示指定月份的第三个周五 |
一些表达式的例子
"0 0/5 * * * ?"
每5分钟运行一次任务,永不停止,除非触发器指定了EndAt
"10 0/5 * * * ?"
每5分钟又10秒,运行一次任务,永不停止,除非触发器指定了EndAt
"0 30 10-13 ? * WED,FRI"
每周周三周五,10:30, 11:30, 12:30, 13:30各运行4次任务,永不停止,除非触发器指定了EndAt
"0 0/30 8-9 5,20 * ?"
每个月的5号,20号,上午8:00,8:30, 9:00, 9:30各运行4次任务,永不停止,除非触发器指定了EndAt
使用代码创建计划任务触发器
使用TriggerBuilder的WithCronSchedule方法,可以很容易的生成一个计划任务触发器
例:
TriggerBuilder.Create()
.WithIdentity("trigger3", "group1")
.WithCronSchedule("0 0/2 8-17 * * ?")
.ForJob("myJob", "group1")
.Build();
Quartz.NET学习笔记(四) 计划任务触发器的更多相关文章
- C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻
前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
- java之jvm学习笔记四(安全管理器)
java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...
- Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices
中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...
- Typescript 学习笔记四:回忆ES5 中的类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- ES6学习笔记<四> default、rest、Multi-line Strings
default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...
- muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制
目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...
- python3.4学习笔记(四) 3.x和2.x的区别,持续更新
python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...
- Go语言学习笔记四: 运算符
Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...
- 零拷贝详解 Java NIO学习笔记四(零拷贝详解)
转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...
随机推荐
- adb deviecs时显示的emulator-5554如何删除
https://zhidao.baidu.com/question/548320666.html
- angular 数据双向绑定的终极奥义
1.ng-app: 是ng的入口,表示当前元素的所有指令都会被angular管理,让anguar认识这段代码,告诉angular要去管理下面的代码:同时angular执行这段代码的时候会在内部开辟一块 ...
- 微服务框架——SpringCloud
1.SpringCloud微服务框架 a.概念:SpringCloud是基于SpringBoot的微服务框架 b.五大神兽:Eureka(服务发现).Ribbon(客服端负载均衡).Hystrix(断 ...
- 数据分析 大数据之路 五 pandas 报表
pandas: 在内存中或对象,会有一套基于对象属性的方法, 可以视为 pandas 是一个存储一维表,二维表,三维表的工具, 主要以二维表为主 一维的表, (系列(Series)) 二维的表, ...
- NEERC训练实录
听说这里可以做一些idea比较好的题.. 那就做做吧 2017-2018 ACM-ICPC, NEERC, Northern Subregional Contest A. Auxiliary Proj ...
- 使用bootstrap本机调试时,应该使用本地服务器地址访问,如http://192.168.19.112/rjshop/,否则360浏览器会出现不兼容的情况
使用bootstrap本机调试时,应该使用本地服务器地址访问,如http://192.168.19.112/rjshop/,否则360浏览器会出现不兼容的情况
- PeopleSoft 启用多语言输入
今天,我的一位同事询问有的人有语言选择,有的人没有(如下图所示). 以下是PT856.09菜单路经: 主菜单-->我的首选项--->一般设置--->多语言条目
- Vue知识点总结
1.属性名已$开头的都是内部提供的属性 2.为什么使用事件修饰符的原因:methods 只有纯粹的数据逻辑,而不是去处理 DOM 事件细节 3.v-if 如果值为false,元素在页面中不存在:值为t ...
- Spring源码学习-容器BeanFactory(二) BeanDefinition的创建-解析前BeanDefinition的前置操作
写在前面 上文 Spring源码学习-容器BeanFactory(一) BeanDefinition的创建-解析资源文件主要讲Spring容器创建时通过XmlBeanDefinitionReader读 ...
- python爬虫第三天
DebugLog实战 有时候我们需要在程序运行时,一边运行一边打印调试日志.此时需要开启DebugLog. 如何开启: 首先将debugleve ...