cron表达式的解释

cron表达式是什么

首先cron是表示计划任务。其次Oracle官网这样解释cron表达式:

Cron expressions are used to configure instances of CronTrigger, a subclass of org.quartz.Trigger. A cron expression is a string consisting of six or seven subexpressions (fields) that describe individual details of the schedule.

也就是说cron表达式通常用于配置计划任务的触发时间。一个cron表达式是一个由六个或者七个子表达式(字段)组成的字符串。而子表达式或者称为字段之间用空格隔开。

举例描述

字段名 是否必需 允许的值 允许的特殊字符
秒(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 或者 JAN-DEC , - * /
星期(day of week) Y 1-7 或者 SUN-SAT , - * /?L C#
年(year) N 1970-2099或者不写 , - * /

这时就可以明白前面所说的六个或者七个子表达式或者字段是什么意思了,从第一位到最后一位分别表示秒 分 时 天 月 星期 年 最后一位年可以不写。

对于以上特殊字符,可以这么理解:

“,”表示and

“-”表示一个区间段,即开始到结束

“*”表示全选,即用汉语中的“每”或者英文中的every/each/per

“/”表示一个区间段的时长,例如放在第一位“/10”则表示每10秒

“L”表示最后,即Last

“W”表示weekday,即工作日也就是周一到周五

“C”表示canlendar,即日历,例如“1C”在星期位上就是包括日历上的星期日

“#”表示序列,如“#2”表示第二

下面在举例中详细说明:

表达式 表达的时间
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 * * ? 每天下午14点钟开始到14点59分结束这么一个时间段
0 0/5 14 * * ? 每天下午14点到14点55分之间每5分钟触发一次
0 0/5 14,18 * * ? 每天下午14点到14点55分 和18点到18点55分之间  每5分钟触发一次
0 0-5 14 * * ? 每天下午14点开始到14点05结束
0 10,44 14 ? 3 WED 每年三月份的每个周三下午14点10分和14点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 ? * 6L 2002-2005 2002年到2005年每个月最后一个周五的10点15分
0 15 10 ? * 6#3 每个月的第三个周五的10点15分
0 0 12 1/5 * ? 每个月从第一天开始每隔5天中午12点触发一次
0 11 11 11 11 ? 每年11月11号11点11分
时间: 2024-10-17 09:28:47

cron表达式的解释的相关文章

Quartz.Net Cron表达式生成器winform版

最近使用Quartz.net做了几个同步任务,感觉非常好.表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器. 于是写了一个winform版本的生成器练练手,也加强对表达式的理解. 当然很多地方借鉴了网上的在线生成器:http://cron.qqe2.com/,并完善了一些设置. 表达式的含义园子里已经有很多的文章介绍了,在这就不重复解释了,可以参考Quartz.NET总结(二)CronTrigger和Cron表达式. 代码开源地址:点击这里,还有很多不完善的地方,以后慢

SpringMVC使用Cron表达式的定时器

SpringMVC的功能很强大,集成了Quartz定时器的功能.能够通过Cron表达式和简单的注解就实现定时运行任务的功能. 网上看到不少样例,可是都不是非常全. 闲话少说.首先要在springmvc.xml中加入以下几行: xmlns:task="http://www.springframework.org/schema/task" <!--以下两行要放在xsi:schemaLocation里面--> http://www.springframework.org/sche

Cron 表达式详解和案例

1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常 "*" 代表每隔1秒钟触发: "," 代表在指定的秒数触发,比如"0,15,45"代表0秒.15秒和45秒时触发任务 "-" 代表在指定的范围内触发,比如&

Cron 表达式详解

1. cron表达式格式: {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)} 2. cron表达式各占位符解释: {秒数} ==> 允许值范围: 0~59 ,不允许为空值,若值不合法,调度器将抛出SchedulerException异常 "*" 代表每隔1秒钟触发: "," 代表在指定的秒数触发,比如"0,15,45"代表0秒.15秒和45秒时触发任务 "-" 代表在指定的范围内触发,比如&

Quartz cron 表达式(linux 定时器,java 定时任务,spring task定时任务)

Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别.区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级.许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异. 在 UNIX cron 里,要执行的作业(或者说命令)是存放在 cron 表达式中的,在第六个域位置上.Quartz 用 cron 表达式存放执行计划.引用了 cron 表达式的 CronTrigger 在计划的时间里

详解定时任务中的 cron 表达式

1.前言 我们经常使用 cron 表达式来定义定时任务的执行策略,今天我们就总结一下 cron 表达式的一些相关知识. 2. cron 表达式的定义 cron 表达式是一个字符串,该字符串由 6 个空格分为 7 个域,每一个域代表一个时间含义. 格式如下: [秒] [分] [时] [日] [月] [周] [年] 通常定义 "年" 的部分可以省略,实际常用的由 前六部分组成 2.1 cron各部定义 关于 cron 的各个域的定义如下表格所示: 域 是否必填 值以及范围 通配符 秒 是

Cron 表达式

cron的表达式被用来配置CronTrigger实例. cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表.这些子表达式是分开的空白,代表:  Seconds  Minutes  Hours  Day-of-Month  Month  Day-of-Week  Year (可选字段) 例  "0 0 12 ? * WED" 在每星期三下午12:00 执行, 个别子表达式可以包含范围, 例如,在前面的例子里("WED")可以替换成 "MON

Cron表达式说明

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

cron表达式详解

Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth Month DayofWeek 每一个域可出现的字符如下: Seconds:可出现", - * /"四个字符,有效范围为0-59的整数 Minutes:可出现", - * /&quo