Cron定时 java入门级理解

目的: 能写出一个正确的Cron

cron可以是6位或7位 按顺序是 秒 分 时 日 月 周 (年),以空格隔开
java的 @Scheduled 只支持6位, quartz可支持7位

秒,分,时,不赘述
: 即第4位, 指当月的第几天,不能为0
: 即第5位,指当年的第几个月,不能为0
: 即第6位,这里不是指第几周, 而是一周的第几天,其实也算日,只是为了区分. (不确定,有说0就是周日,但是我在quartz测了0会报错)
这里就出现了一个矛盾点: 日和周, 假设都写 * ,会报错.
(个人理解: 我希望这一天是一个月里的第几天,或一周里的第几天,只能二选一,要是都选了,比较拗口, 所以其中一个位置必须要用?来代替 ,表示我不关注这个栏位 )
总结: 第4位或第6位必须出现一个?号
如果想写 0 * * * * *这种, , 即0 * * ? * * 或 0 * * * * ?

例子:

 0 * * * * ? 每分钟0秒的时候执行一次
 * 0 * * * ? 每小时0分钟的时候执行60=每小时0分钟的时候每秒一次
 , 比如10:00:00的时候每秒一次一直执行到10:00:59
 , 然后下一次等11:00:00的时候再执行
 * * 0 * * ? 每天0点执行一整个小时,这个小时内每秒一次
 * * * 1 * ? 每月一号执行一整天
 * * * * 1 ? 每年一月份执行整个月
 * * * ? * 1 每周一执行一整天 (周的用法可能有误,此处是参考网上所说,望自己测试,比如周四实际是5之类的)

总结易错点:很多时候想要的是例如每天8点一次, 0 0 8 * * ?
实际写成 * * 8 * * ? 问题就大了

以上仅限初步写出一个能用的cron, 如用法有误,望指出,谢谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值