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表达式
    mark

生成 Cron表达式

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

解析 Cron表达式

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

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

相关博文:
Quartz入门指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值