cron表达式详解

cron表达式
* * * * * ? *
分别表示的是秒,分,时,日,月,周,年
其中年可以省略
在这里插入图片描述

* 星号

使用星号(*) 指示着你想在这个域上包含所有合法的值。例如,*在分钟字段时,表示“每分钟”
如 0 * 17 * * ?,每天从下午5点到下午5:59中的每分钟激发一次

? 问号

该字符只在日期和星期字段中使用,它通常指定为“无意义的值”,相当于点位符
? 是说不为该域指定值,这不同于星号,星号是指示着该域上的每一个值。
? 号只能用在日和周域上,但是不能在这两个域上同时使用
假如你为这两域的其中一个指定了值,那就必须在另一个字值上放一个 ?

, 逗号

逗号 (,) 是用来在给某个域上指定一个值列表的
如:0,15,30,45 * * * * ?

/ 斜杠

斜杠 (/) 是用于时间表的递增的
x/y表达一个等步长序列,x为起始值,y为增量步长值
如:0/15 * * * * ?,表示每15秒执行一次,当秒为0,15,30,45的时候执行

- 中划线

中划线 (-) 用于指定一个范围
如:0 45 3-8 ? * *,在上午的3点至上午的8点期间,分钟数为45分时触发

L 字母

L 说明了某域上允许的最后一个值。它仅被日和周域支持
当用在日域上,表示的是在月域上指定的月份的最后一天
如:日域上0 0 8 L * ?,意义是在每个月最后一天的上午 8:00 触发
当 L 字母用于周域上,指示着周的最后一天,就是星期六 (或者数字7)(国际惯例)
如:0 59 23 ? * L,在每个月的最后一个星期六晚上的 11:59 触发
当使用于周域上,你可以用一个数字与 L 连起来表示月份的最后一个星期 X
如0 0 12 ? * 2L 说的是在每个月的最后一个星期一触发 trigger

W 字母

W 字符代表着平日 (Mon-Fri),并且仅能用于日域中
如:0 0 8 15W * ?,离该月15号的最近一个平日执行

井号

字符仅能用于周域中。它用于指定月份中的第几周的哪一天
如:0 0 8 ? 5 1#2,表示5月的第二个星期天早上8点触发

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cron表达式是一种用于指定定时任务执行时间的字符串表达式。它由6个字段组成,分别表示秒、分、小时、天、月、周,每个字段都有一些特定的取值范围和取值规则。 以下是Cron表达式的格式: ``` <秒> <分> <小时> <日> <月> <周> <年> ``` 其中,年是可选的,其它字段都是必须的。以下是各个字段的取值范围和取值规则: - 秒 (0-59) - 分 (0-59) - 小时 (0-23) - 日 (1-31) - 月 (1-12) - 周 (0-7,0和7都表示周日) 在Cron表达式中,每个字段都可以是一个具体的数字,也可以是一个范围、一个列表或者一个通配符。以下是一些例子: - *:表示所有可能的值,比如“*”在分钟字段中表示每分钟都执行。 - ?:表示未指定,比如在日字段中表示不关心是几号。 - -:表示范围,比如在小时字段中表示10点到12点。 - /:表示间隔,比如在秒字段中表示每隔5秒执行一次。 - ,:表示列表,比如在周字段中表示周一和周二。 验证Cron表达式的方法有很多种,下面是一种Java实现的示例: ```java import org.quartz.CronExpression; public class CronUtils { public static boolean isValid(String cronExpression) { try { new CronExpression(cronExpression); return true; } catch (Exception e) { return false; } } } ``` 这个示例使用了Quartz框架提供的CronExpression类来解析和验证Cron表达式。如果传入的表达式格式不正确,会抛出异常并返回false,否则返回true。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值