Quartz简介

Quartz简介

Quartz是一个任务调度框架 可以定时调度任务

使用场景
  1. 发送生日邮件
  2. 定时调度任务,比如每天晚上十二点自动调用程序执行扫描数据库表,给一些明细表记录修改插入数据等等

核心 : 任务执行表达式

核心就是写任务执行表达式

  • 表达式: 日和周必须有一个是?号
秒 分 试 日 月 周 年

Quartz Cron 表达式支持到七个域

名称是否必须允许值特殊字符
0-59, - * /
0-59, - * /
0-23, - * /
1-31, - * ? / L W C
1-12 或 JAN-DEC, - * /
1-7 或 SUN-SAT, - * ? L C #
空 或 1970-2099, - * /

- , 逗号是用来在给某个域上指定一个值列表的
- 例如,使用值 0,15,30,45 在秒域上意味着每15秒触发一个 trigger。

  • - 中划线是 用于指定一个范围。

    • 在小时域上的 3-8 意味着 “3,4,5,6,7 和 8 点。”
    • 域的值不允许回转,所以像 50-10 这样的值是不允许的。
  • * 星号指的是任意

  • / 斜线指的是频率 用于时间表的递增的

    • 0/15 0/30 * * * ? 是在整点和半点时每15秒触发 trigger
  • ? ? 号只能用在日和周域上

    • 因为不能同时指定,所以有一个必须是有?号
  • L 说明了某域上允许的最后一个值,单词Last

    • 只能用在日和周,表示每月或者每周的最后一天
  • W 表示工作日 单词Work,星期一到星期五

    • 它用来指定离指定日的最近的一个平日
    • 如果是15W 15号是星期六 那就会在14号星期五执行
  • C该字符只在日期和星期字段中使用,代表“Calendar”的意思。它的意思是计划所关联的日期

    • 如果日期没有被关联,则相当于日历中所有日期。
    • 例如5C在日期字段中就相当于日历5日以后的第一天。
    • 1C在星期字段中相当于星期日后的第一天。
  • # 字符仅能用于周域中。它用于指定月份中的第几周的哪一天。

    • 例如,如果你指定周域的值为 6#3,它意思是某月的第三个周五
    • 6=星期五,#3意味着月份中的第三周。

例子

表达式意义

  • "0 0 12 * *?" : 每天中午12点触发

  • "0 15 10 ? **" : 每天上午10:15触发

  • "0 15 10 * *?" : 每天上午10:15触发
  • "0 15 10 * * ?*" : 每天上午10:15触发
  • "0 15 10 * * ?2005" : 2005年的每天上午10:15触发
  • "0 * 14 * *?" : 在每天下午2点到下午2:59期间的每1分钟触发
  • "0 0/5 14 * *?" : 在每天下午2点到下午2:55期间的每5分钟触发
  • "0 0/5 14,18 ** ?" : 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
  • "0 0-5 14 * *?" : 在每天下午2点到下午2:05期间的每1分钟触发
  • "0 10,44 14 ? 3WED" : 每年三月的星期三的下午2:10和2:44触发
  • "0 15 10 ? *MON-FRI" : 周一至周五的上午10:15触发
  • "0 15 10 15 *?" : 每月15日上午10:15触发
  • "0 15 10 L *?" : 每月最后一日的上午10:15触发
  • "0 15 10 ? *6L" : 每月的最后一个星期五上午10:15触发
  • "0 15 10 ? * 6L2002-2005" : 2002年至2005年的每月的最后一个星期五上午10:15触发
  • "0 15 10 ? *6#3" : 每月的第三个星期五上午10:15触发
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值