Quartz之CronTrigger

上篇博文简单的介绍了Quartz的基本使用,现在介绍一下最常用的触发器:CronTrigger

简介

CronTriggers往往比SimpleTrigger更有用,如果您需要基于日历的概念,而非SimpleTrigger完全指定的时间间隔,复发的发射工作的时间表。 CronTrigger,你可以指定触发的时间表如“每星期五中午”,或“每个工作日9:30时”,甚至“每5分钟一班9:00和10:00逢星期一上午,星期三星期五“。 即便如此,SimpleTrigger一样,CronTrigger拥有的startTime指定的时间表时生效,指定的时间表时,应停止(可选)结束时间。

Cron Expressions

CronTirgger 类似于 LINUX 上的任务调度命令 crontab,即利用一个包含 7 个字段的表达式来表示时间调度方式。

字段

允许值

允许的特殊字符

Seconds(秒)

0-59

, - * /

Minutes(分)

0-59

, - * /

Hours(小时)

0-23

, - * /

Day-of-Month(日期)

1-31

, - * ? / L W C

Month(月份)

1-12 或者 JAN-DEC ( JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV、 DEC)

, - * /

Day-of-Week(星期)

1-7 或者 SUN-SAT ( SUN, MON, TUE, WED, THU, FRI、SAT)

, - * ? / L C #

Year(年)(可选)

留空, 1970-2099

, - * /

例如,”0 15 10 * * ? *” 表示每天的 10:15AM 执行任务。”0 10 14 ? 3 WED” 表示三月份的每个星期三的下午 14:10PM 执行任务。

特殊字符含义

  • “*” 代表整个时间段.
  • “?”字符:表示不确定的值
  • “,”字符:指定数个值
  • “-”字符:指定一个值的范围
  • “/”字符:指定一个值的增加幅度。n/m表示从n开始,每次增加m。 例如: “0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行
  • “L”字符:用在日表示一个月中的最后一天,用在周表示该月最后一个星期X
  • “W”字符:指定离给定日期最近的工作日(周一到周五) 例如: “15W”放在每月(day-of-month)字段上表示为“到本月15日最近的工作日”
  • “#”字符:表示该月第几个周X。6#3表示该月第3个周五 例如: 在每周(day-of-week)这个字段中内容为”6#3” or “FRI#3” 则表示“每月第三个星期五”

常用Cron表达式

  • 每隔5秒执行一次:/5 * * * ?
  • 每隔1分钟执行一次:0 /1 * * ?
  • 每天23点执行一次:0 0 23 * * ?
  • 每天凌晨1点执行一次:0 0 1 * * ?
  • 每月1号凌晨1点执行一次:0 0 1 1 * ?
  • 每月最后一天23点执行一次:0 0 23 L * ?
  • 每周星期天凌晨1点实行一次:0 0 1 ? * L
  • 在26分、29分、33分执行一次:0 26,29,33 * * * ?
  • 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?

使用 CronExpBuilder 自动生成 Cron表达式

CronExpBuilder 主要有两个功能:

  • 生成 Cron表达式

生成 Cron表达式 如上图所示,使用 CronExpBuilder 可以很方便的生成 Cron表达式。

  • 解析 Cron表达式

解析 Cron表达式 如上图所示,使用 CronExpBuilder 可以很方便的解析 Cron表达式。

下载地址: https://bintray.com/artifact/download/wjw465150/Java/CronExpBuilder.jar github地址:https://github.com/wjw465150/CronExpBuilder

相关博文: Quartz入门指南

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑白安全

ctf工具包 ctf Toolkit 渗透测试工具包 隐秘数据破解

│ ├── caidao-20160620-www.maicaidao.com.7z

1.2K20
来自专栏流浪猫的golang

MongoDB 中文的全文索引

MongoDB 从3.2 版本以后添加了对中文索引的支持: 官网链接:https://docs.mongodb.com/manual/reference/t...

38330
来自专栏hotqin888的专栏

MeritMS+jQuery.Gantt价值管理系统增加项目进度展示

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/det...

34210
来自专栏菩提树下的杨过

ExtJs学习笔记(4)_EditorGridPanel(可编辑的网格控件)

这一节,我们将看到ExtJs功能强大的可编辑网格控件,几乎与VS.Net的GridView功能一样了,但是ExtJs的可是纯JS的UI 一.静态示例(改自Ext...

73850
来自专栏生信技能树

linux 命令中英文对照,收集

听说markdown排版得用浏览器打开,点击最下面的阅读原文也可以! Is Linux CLI case-sensitive? The answer is, y...

41460
来自专栏菩提树下的杨过

Silverlight:利用异步加载Xap实现自定义loading效果

关键点: 1.利用WebClient的DownloadProgressChanged事件更新下载进度 2.下载完成后,分析Xap包的程序集Assembly信息 ...

232100
来自专栏ascii0x03的安全笔记

IE的BHO通过IHTMLDocument2接口获得网页源代码

参考了凤之焚的专栏:http://blog.csdn.net/lion_wing/article/details/769742 但是他的源码有些问题,即IHTM...

35550
来自专栏高性能服务器开发

(三) 服务器端的程序架构介绍2

下面我们以pc端登录为例来具体看一个数据包在服务器端各个服务之间走过的流程: 步骤1:login_server初始化侦听socket,设置新连接到来的回调函数。...

43550
来自专栏小勇DW3

生产环境下JVM调优参数的设置实例

◆ NewSize较大,old gen 剩余空间64m,一方面可能会带来old区容易增长到报警范围(监控数据显示oldgenused长期在50m左右,接近78%...

31060
来自专栏杂烩

分布式服务框架之Dubbo整合Spring项目(二)

11820

扫码关注云+社区

领取腾讯云代金券