通常来说计划任务触发器会比简单触发器的使用频率高很多。如果你的任务是需要基于日历每天定时运行,那你就应该使用计划任务触发器,例如每周五中午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学习笔记(四) 计划任务触发器的更多相关文章

  1. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  2. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  3. java之jvm学习笔记四(安全管理器)

    java之jvm学习笔记四(安全管理器) 前面已经简述了java的安全模型的两个组成部分(类装载器,class文件校验器),接下来学习的是java安全模型的另外一个重要组成部分安全管理器. 安全管理器 ...

  4. Learning ROS for Robotics Programming Second Edition学习笔记(四) indigo devices

    中文译著已经出版,详情请参考:http://blog.csdn.net/ZhangRelay/article/category/6506865 Learning ROS for Robotics Pr ...

  5. Typescript 学习笔记四:回忆ES5 中的类

    中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...

  6. ES6学习笔记<四> default、rest、Multi-line Strings

    default 参数默认值 在实际开发 有时需要给一些参数默认值. 在ES6之前一般都这么处理参数默认值 function add(val_1,val_2){ val_1 = val_1 || 10; ...

  7. muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制

    目录 muduo网络库学习笔记(四) 通过eventfd实现的事件通知机制 eventfd的使用 eventfd系统函数 使用示例 EventLoop对eventfd的封装 工作时序 runInLoo ...

  8. python3.4学习笔记(四) 3.x和2.x的区别,持续更新

    python3.4学习笔记(四) 3.x和2.x的区别 在2.x中:print html,3.x中必须改成:print(html) import urllib2ImportError: No modu ...

  9. Go语言学习笔记四: 运算符

    Go语言学习笔记四: 运算符 这章知识好无聊呀,本来想跨过去,但没准有初学者要学,还是写写吧. 运算符种类 与你预期的一样,Go的特点就是啥都有,爱用哪个用哪个,所以市面上的运算符基本都有. 算术运算 ...

  10. 零拷贝详解 Java NIO学习笔记四(零拷贝详解)

    转 https://blog.csdn.net/u013096088/article/details/79122671 Java NIO学习笔记四(零拷贝详解) 2018年01月21日 20:20:5 ...

随机推荐

  1. angular 数据双向绑定的终极奥义

    1.ng-app: 是ng的入口,表示当前元素的所有指令都会被angular管理,让anguar认识这段代码,告诉angular要去管理下面的代码:同时angular执行这段代码的时候会在内部开辟一块 ...

  2. UIImagePickerController照片选取器

    记录于2013/7/4   加入框架:  MobileCoreServices.framework  MediaPlayer.framework   导入头文件: #import <MediaP ...

  3. C语言柔性数组讲解

    #include<stdio.h> typedef struct _SoftArray{ int len; int array[]; }SoftArray; int main() { ; ...

  4. 勾勾街——一个专注于免越狱免签名的苹果ios APP打包生成的网站

    自涛舅舅研发的“苹果ios APP自助生成系统”上线以来,每天都有大量的用户注册和生成免越狱app,为什么? 因为我们有明显的技术优势,APP不需要上架appstore, 生成APP又不需要企业签名证 ...

  5. 背包问题——dfs

    背包问题——dfs 问题描述   解决思路 采用DFS搜索 其实也是回溯法 代码实现 #include<iostream> #include<vector> using nam ...

  6. JavaOOP笔记

    http://note.youdao.com/noteshare?id=bbdc0b970721e40d327db983a2f96371

  7. 命令行 app

    [Getting Title at 38:53](http://click.pocoo.org/5/) 其实在 实际操作中 如果参数特别多的话,最好使用配置文件来操作,比如 yaml [YAML 语言 ...

  8. 查看mac系统版本

    打开终端, 输入命令 uname -a 回车 x86_64 表示系统为64位 i686 表示系统32位的

  9. vue 源码学习三 vue中如何生成虚拟DOM

    vm._render 生成虚拟dom 我们知道在挂载过程中, $mount 会调用 vm._update和vm._render 方法,vm._updata是负责把VNode渲染成真正的DOM,vm._ ...

  10. java前后分离使用fetch上传文件失败500

    这次不是写什么技术要点,仅仅是记录一下 最近遇到的一个问题 背景 使用fetch向java后台上传文件时,前端调试报错500,后端的报错为multipart 无法解析,翻译过来大概是这个意思. 由于本 ...