【综合】Cron表达式
介绍
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表达式相关推荐
- Cron 表达式极速参考
Cron表达式: * * * * * * * 这些星号由左到右按顺序代表 : [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允 ...
- 定时任务 Cron表达式
Cron表达式是一个表示时间周期的字符串. 分为6或7个域,每一个域代表一个含义. 验证工具: http://cron.qqe2.com/ Cron有如下两种语法格式: 格式1: 秒 分 时 天(月) ...
- 作业调度框架 Quartz 学习笔记(三) -- Cron表达式
2019独角兽企业重金招聘Python工程师标准>>> 前面两篇说的是简单的触发器(SimpleTrigger) , SimpleTrigger 只能处理简单的事件出发,如果想灵活的 ...
- Quartz.Net cron表达式详解
一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素. 按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月)(0~31,但是你需要考虑月的天数) 5.月 ...
- Quartz cron表达式
为什么80%的码农都做不了架构师?>>> Cron表达式有以下两种语法格式: 1. Seconds Minutes Hours DayofMonth Month Day ...
- 9点到17点半 cron_SpringQuartz定时任务的cron表达式书写
SpringQuartz定时任务的使用,要配置这个定时任务什么时候执行,周期是多少,周期内执行多少次,这个都是cron表达式来控制的,下面详解一下这个cron表达式. 一.先来举些例子 [1]0 0 ...
- Spring 定时任务之 @Scheduled cron表达式
首先在配置文件头部的必须要有: xmlns:task="http://www.springframework.org/schema/task" 1 其次xsi:schemaLoca ...
- 【番外篇1】青龙面板中cron表达式新手入门教程cron的介绍与使用
cron表达式即计划任务,约定任务在特定的时间执行 cron表达式有7位和5位之分,不同位数之间以空格分隔 7位:* * * * * * * 从左到右依次代表秒.分.时.天.月.周.年,在大部分情况下 ...
- Cron 表达式详解
1.cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2.cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空 ...
最新文章
- leetcode-225 队列实现栈
- 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree
- JVM系列二:垃圾回收
- spring和activemq的结合(五)
- MySQL 常用语法 之 DISTINCT
- YARP(Yet Another Reverse Proxy)是使用 .NET 构建的高度可定制的反向代理
- centos7安装php8,centos8安装php7.4
- 非 GUI 模式运行 JMeter 压力测试
- java 线程 内存分配内存_漫谈JAVA语言的内存分配
- python求平方根的小数_python中的数字和数学运算
- python sklearn 支持向量机_python机器学习库sklearn之支持向量机svm介绍
- asp.net实现页面无刷新效果
- 单元测试用例如何编写
- 灰色系统理论及其应用 (七) :道路交通事故灰色 Verhulst 预测模型
- Android布局——水滴屏全屏设置
- 小米10 红米K30Pro 小米10Pro 无限重启卡米 9008救砖后无限重启 线刷无效
- thinkpad s5黑将摄像头最新驱动_第一款以iOS方式运行的安卓手机:联想新机S5黑科技震撼来袭!...
- CSS选择器(随笔)
- 机器学习-数据科学库 13 政治献金数据案例
- 小米的200万不是这么好挣的!