介绍

Crom表达式(Cron Expressions)用于表达一段时间内进行的次数,一般用于自动化操作中频率的设置。

可以用于linux中crontab定时任务以及schedule中间件的频率设置。

字段组成

Cron表达式由7个字段组成,最后一个字段为可选。

//秒、分、时、天、月、星期、年
0 0 12 * * ? 2017

7个字段分别是:秒、分、时、DAY-OF-WEEK(天)、月、WEEK-OF-DAY(星期)、年(可选)

每个字段上可以填写字段取值范围内的值,还可以使用特定字符来表达频率。

字段取值范围

这是每个字段的取值范围:

Name Required Allowed Values Allowed Special Characters
Seconds Y 0-59 , - * /
Minutes Y 0-59 , - * /
Hours Y 0-23 , - * /
day of month Y 1-31 , - * ? / L W C
Month Y 0-11 or JAN-DEC , - * /
day of week Y 1-7 or SUN-SAT , - * ? / L C #
Year N empty or 1970-2099 , - * /

通用特定字符

符号 描述
* 代表所有(all)
, 代表多个选项,比如:1,2,3
- 代表一个范围,比如1-15
/ 增长起点与步长,0/5代表:5 10 15 20 25 …

特殊特定字符

符号 描述
? 适用于day of month与day of week字段,想当于禁用的意思,如果选择了使用天这个字段,则在星期字段使用?标识
L 代表LAST,最后。在day of month中代表一个月中的最后一天(Last day of month),在day of week中标识,最后一个星期的某一天。6L最后一个星期五。
W 适用于day of month天字段,定义每个月中的星期,10W代表离10最近的工作日,如果10号是星期日,那么会在11号星期一触发。如果11号是星期六,那么会在10号星期五触发。
# 适用于day-of-week这个字段,代表每个月第nth个工作日,6#3代表,这个月第三个星期五

示例

At 12:00 pm (noon) every day during the year 2017

1.2017年的每天中午12点触发

//第四个字段和第六个字段:DAY OF MONTH 和 DAY OF WEEK 成互斥关系,每个表达式中必定有一个为?
//在这个表达式中,每天都需要进行,那么无关星期,所以DAY OF WEEK为?
0 0 12 * * ? 2017

Every 5 minutes starting at 1 pm and ending on 1:55 pm and then starting at 6 pm and ending at 6:55 pm, every day

2.每天中午1点开始到1点55,以及每天下午6点到6点55,每五分钟触发

0 0-55/5 13,18 * * ?
等同于
0 0/5 13,18 * * ?  //由于60分,h(小时)位已经改变,所以也可以这么写

Every minute starting at 1 pm and ending on 1:05 pm, every day

3.每天中午1点到1点5分,每分钟触发

0 0-5/1 13 * * ?
//默认的步长就是1,分钟位一分钟一分钟增加

At 1:15 pm and 1:45 pm every Tuesday in the month of June

4.每年6月份的每个星期2的中午1点14和1点45

0 15,45 13 ? 5 3
0 15,45 13 ? 5 Tue
//星期从星期日开始算,星期二就是3,可以写成Tue 更容易理解

At 9:30 am every Monday, Tuesday, Wednesday, Thursday, and Friday

5.每个工作日的9点30

0 30 9 ? * 2-6
0 30 9 ? * Mon-Fri

At 9:30 am on 15th day of every month

6.每个月份中第15天的9点30

0 30 9 15 * ?

At 6 pm on the last day of every month

7.每个月最后一点的下午6点

0 0 18 L * ?

At 6 pm on the 3rd to last day of every month

8.每个月的第三天到最后一天的下午6点

0 0 18 L-3 * ?
//问题 L-3和3-L有区别吗?

At 10:30 am on the last Thursday of every month

9.每个月的最后一个星期四的早上10点

0 30 10 ? * 5L

At 6 pm on the last Friday of every month during the years 2015, 2016 and 2017

在2015-2017年中,每个月的最后一个星期五的下午6点

0 0 18 ? * 6L 2015-2017

At 10 am on the third Monday of every month

每个月的第三个星期一的早上10点钟

0 0 10 ? * 2#3

At 12 am midnight on every day for five days starting on the 10th day of the month

从每个月的第十天开始,每天中午12点触发,每5天执行一次。(博主第一次翻译错了,以为是从10号-15号,for 5 days 翻译成持续5天)

0 0 12 10/5 * ?

总结:

写好corn表达式主要需要明确好频率
区分好DAY OF MONTH 和 WEEK OF DAY
可以根据一些测试网站,进行测试。

本文参考:
baeldung
oracle

【综合】Cron表达式相关推荐

  1. Cron 表达式极速参考

    Cron表达式: * * * * * * * 这些星号由左到右按顺序代表 : [秒] [分] [小时] [日] [月] [周] [年] 序号 说明    是否必填   允许填写的值         允 ...

  2. 定时任务 Cron表达式

    Cron表达式是一个表示时间周期的字符串. 分为6或7个域,每一个域代表一个含义. 验证工具: http://cron.qqe2.com/ Cron有如下两种语法格式: 格式1: 秒 分 时 天(月) ...

  3. 作业调度框架 Quartz 学习笔记(三) -- Cron表达式

    2019独角兽企业重金招聘Python工程师标准>>> 前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的 ...

  4. Quartz.Net cron表达式详解

    一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月)(0~31,但是你需要考虑月的天数) 5.月 ...

  5. Quartz cron表达式

    为什么80%的码农都做不了架构师?>>>    Cron表达式有以下两种语法格式: 1.     Seconds Minutes Hours DayofMonth Month Day ...

  6. 9点到17点半 cron_SpringQuartz定时任务的cron表达式书写

    SpringQuartz定时任务的使用,要配置这个定时任务什么时候执行,周期是多少,周期内执行多少次,这个都是cron表达式来控制的,下面详解一下这个cron表达式. 一.先来举些例子 [1]0 0 ...

  7. Spring 定时任务之 @Scheduled cron表达式

    首先在配置文件头部的必须要有: xmlns:task="http://www.springframework.org/schema/task" 1 其次xsi:schemaLoca ...

  8. 【番外篇1】青龙面板中cron表达式新手入门教程cron的介绍与使用

    cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:* * * * * * * 从左到右依次代表秒.分.时.天.月.周.年,在大部分情况下 ...

  9. Cron 表达式详解

    1.cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2.cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空 ...

最新文章

  1. leetcode-225 队列实现栈
  2. 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree
  3. JVM系列二:垃圾回收
  4. spring和activemq的结合(五)
  5. MySQL 常用语法 之 DISTINCT
  6. YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
  7. centos7安装php8,centos8安装php7.4
  8. 非 GUI 模式运行 JMeter 压力测试
  9. java 线程 内存分配内存_漫谈JAVA语言的内存分配
  10. python求平方根的小数_python中的数字和数学运算
  11. python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍
  12. asp.net实现页面无刷新效果
  13. 单元测试用例如何编写
  14. 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
  15. Android布局——水滴屏全屏设置
  16. 小米10 红米K30Pro 小米10Pro 无限重启卡米 9008救砖后无限重启 线刷无效
  17. thinkpad s5黑将摄像头最新驱动_第一款以iOS方式运行的安卓手机:联想新机S5黑科技震撼来袭!...
  18. CSS选择器(随笔)
  19. 机器学习-数据科学库 13 政治献金数据案例
  20. 小米的200万不是这么好挣的!

热门文章

  1. 工程造价课程-广联达GTJ2018功能介绍-新手看下
  2. 大学模电实验合集丨实验四 直流差分放大电路
  3. 《青子记账》APP隐私政策
  4. 百度的新手法挣钱手段,指数创建关键词服务
  5. wayos计费系统easyradius使用小记
  6. PHP编程第3版英文影印本pdf
  7. axios、Vue案例、生命周期
  8. 淘宝无货源开店怎么做?淘宝无货源开店裂变教程
  9. WINDOWS时间服务启动失败的原因
  10. nlp学习--专家系统总结-专家系统基础