发现cron表达式 很坑啊,有一个基本功能不能满足,指定日期开始按周期执行
比如,指定今天9点开始每隔1小时运行一次,cron表达式为:0 0 9/1 * * ?
最近10次运行时间为
2023-03-30 16:00:00
2023-03-30 17:00:00
2023-03-30 18:00:00
2023-03-30 19:00:00
2023-03-30 20:00:00
2023-03-30 21:00:00
2023-03-30 22:00:00
2023-03-30 23:00:00
2023-03-31 09:00:00(从第二天9点开始)
2023-03-31 10:00:00
可以看出,24小时为一个周期,无法做到循环执行
想到的办法就是先睡眠到指定时间,然后按0 0 0/1 * * ? 执行
再或者,我想当前时间50分开始,每隔30分钟执行一次,cron表达式:0 50/30 * * * ?
最近10次执行时间为
2023-03-30 17:50:00
2023-03-30 18:50:00
2023-03-30 19:50:00
2023-03-30 20:50:00
2023-03-30 21:50:00
2023-03-30 22:50:00
2023-03-30 23:50:00
2023-03-31 00:50:00
2023-03-31 01:50:00
2023-03-31 02:50:00
变成了50分开始,每隔一小时执行一次了,再次说明cron是以0-59(单位是分)0-23(单位为时)其他类似。为周期,这个周期内干不完,下个周期重新算起。
so 朋友们有没有解决办法啊或替代方法