1.Cron表达式是基于频度的任务计划。
2.此正则表达式格式:
此正则表达式有六部分组成,以空格分隔,格式说明如下:
名称
|
必须
|
可用数值
|
可用字符
|
秒
|
是
|
0-59
|
, - * /
|
分
|
是
|
0-59
|
, - * /
|
时
|
是
|
0-23
|
, - * /
|
天
|
是
|
1-31
|
, - * ? / L W C
|
月
|
是
|
1-12 or JAN-DEC
|
, - * /
|
周
|
是
|
1-7 or SUN-SAT
|
, - * ? / L C #
|
说明:
1),'*' 字符可以用于所有字段,如在“分”字段中设为"*"表示"每一分钟"的含义。
2),'?' 字符可以用在“日”和“周”字段. 它用来指定 '不明确的值'. 这在你需要指定这两个字段中的
某一个值而不是另外一个的时候会被用到。如
我想将触发器设置在在每月10号而并不在意这天是周几,
可将“日”字段设置成"10"而“周”字段设置成"?"
3),
'-' 字符被用来指定一个值的范围,比如在“小时”字段中设为"10-12"表示"10点到12点".
4),',' 字符指定数个值。比如在“周几”字段中设为"MON,WED,FRI"表示将触发器设置在"Monday, Wednesday, and Friday".
5),'/' 字符用来指定一个值的的增加幅度. 比如在“秒”字段中设置为"0/15"表示"第0, 15, 30, 和 45秒"。
而 "5/15"则表示"第5, 20, 35, 和 50". 在'/'前加"*"字符相当于指定从0秒开始. 每个字段都有一系列
可以开始或结束的数值。对于“秒”和“分”字段来说,其数值范围为0到59,对于“小时”字段来说其为0到23,
对于“日”字段来说为0到31, 而对于“月”字段来说为1到12。
注意,"/"字段仅仅表示在允许的数值范围内从开始"第n"的值。例如对于“月”字段来说"7/6"只是表示7月被开启而不是“每六个月”, 。
6),'L'字符可用在“日”和“周几”这两个字段。它是"last"的缩写。例如,“日”字段中的"L"表示"一个月中的最后一天" ,
对于一月就是31号对于二月来说就是28号(非闰年)。而在“周几”字段中, 它简单的表示"7" or "SAT",
但是如果在“周几”字段中使用时跟在某个数字之后, 它表示"该月最后一个星期×",比如"6L"表示"该月最后一个周五"。
7),'W' 可用于“日”字段。用来指定历给定日期最近的工作日(周一到周五) 。比如将“日”字段设为"15W",
意为: "离该月15号最近的工作日"。因此如果15号为周六,触发器会在14号即周五调用。如果15号为周日, 触发器会在16号
也就是周一触发。如果15号为周二,那么当天就会触发。如果将“日”字段设为"1W", 而一号又是周六, 触发器会于下周一也
就是当月的3号触发,因为它不会越过当月的值的范围边界。'W'字符只能用于“日”字段的值为单独的一天而不是一系列值的时候。
8),'L'和'W'可以组合用于“日”字段表示为'LW',意为"该月最后一个工作日"。
9),'#' 字符可用于“周几”字段。该字符表示“该月第几个周×”,比如"6#3"表示该月第三个周五( 6表示周五而"#3"该月第三个)。
"2#1"表示该月第一个周一而 "4#5" 表示该月第五个周三。如果指定"#5"该月没有第五个“周×”,该月是不会触发的。
10),'C' 字符可用于“日”和“周几”字段,它是"calendar"的缩写。 它表示为基于相关的日历所计算出的值(如果有的话)。
如果没有关联的日历, 那它等同于包含全部日历。“日”字段值为"5C"表示"日历中的第一天或者5号以后",
“周几”字段值为"1C"则表示"日历中的第一天或者周日以后"。
对于“月份”字段和“周几”字段来说合法的字符都不是大小写敏感的。
3. 例子
正则式
0 0 12 * * ? 每天中午十二点触发
0 15 10 ? * * 每天早上10:15触发
0 15 10 * * ? 每天早上10:15触发
0 15 10 * * ? * 每天早上10:15触发
0 15 10 * * ? 每天早上10:15触发
0 * 14 * * ? 每天从下午2点开始到2点59分每分钟一次触发
0 0/5 14 * * ? 每天从下午2点开始到2:55分结束每5分钟一次触发
0 0/5 14,18 * * ? 每天的下午2点至2:55和6点至6点55分两个时间段内每5分钟一次触发
0 0-5 14 * * ? 每天14:00至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 每月最后一个周五的10:15触发
0 15 10 ? * 6L 每月最后一个周五的10:15触发
0 15 10 ? * 6#3 每月的第三个周五的10:15触发
参照网址:
分享到:
相关推荐
Cron Expression:一个cron表达式解析器
Cron Expression UI :输入组件,可轻松直观地生成cron表达式,如 例子 使用说明 NPM 从安装软件包 npm install cron-expression-input@1.2.7 在你的代码中 import "cron-expression-input/lib/cron-expression-...
NULL 博文链接:https://wv1124.iteye.com/blog/503928
cron表达式工具, 有web版及exe版本. exe版本需安装java.
cron表达式cron生成器
Cron表达描述符 将 cron 表达式转换为人类可读描述的 .NET 库。 作者:Brady Holt ( )许可证: 特征 支持所有 cron 表达式特殊字符,包括 * / , - ? 体重,# 支持5、6(w /秒或年)或7(w /秒和年)部分cron表达式...
vue-cron表达式组件
cron 表达式 包含 秒 分 时 天 月 年 粗浅的cron 表达式
安装将 CronExpressionGenerator 库添加到您的composer.json文件中: composer require swekaj/cron-expression-generator用法要将其与一起使用,您必须将CronExpressionGenerator\FakerProvider类添加到 Faker 生成...
基于C的Cron表达式解析,无需额外的库,直接代码实现,方便移植,稳定性可靠。
部署的时候启动定时器 博文链接:https://jessen163.iteye.com/blog/1265901
WinForm Cron表达式生成器 Quartz.Net Cron表达式生成器winform版 最近使用Quartz.net做了几个同步任务,感觉非常好。表达式设置也是非常灵活,但是新入手发现对表达式不熟,每次都要使用在线生成器。 于是写...
Cron表达式写好了,不知道是否正确,如果执行间隔很长,根本没法测试,这个工具可以帮助你,他能输出所有的执行时间,你只需自己调整参数就行了,非常简单。提醒:目前常用的两个Cron表达式在线生成网站所提供的近期...
cron,cron表达式,cron表达式详解
资源为js文件,下载后直接用script标签引入,需要解析时调用该js第一个方法,参数为cron定时器表达式字符串,例如:translateCRONToChinese("0 0 12 */1 * ?");
Java根据时间戳生成cron表达式,可传入时间范围灵活实现Cron基于日历形式的任务调度时间点,简单简洁,互用性强,可以灵活改动。
crontab 配置串 c++处理库 linux * * * * * 格式串处理 c++封装 正常编译后使用 可以直接使用 改子github的代码
Quartz的cron表达式。 Spring 定时任务@Scheduled cron表达式详解
基于Vue的Cron表达式组件,封装比较简单,没做组件优化,供大家参考 Installation 下载本项目 安装依赖包 npm install 运行 npm run dev
cron 工作原理: cron 命令在系统启动时就由一个 shell 脚本自动启动,进入后台.首先会搜索 /var/spool/cron 目录, 寻找以 /etc/passwd 文件中的用户名命名的 crontab 文件并载入内存; cron 命令还会搜索 /etc/crontab...