go 没有好用的 cron 表达式解析包吗

2023-10-10 18:24:20 +08:00
 zhuoyue100

google 找了半天没有找到好用的包,要么太老了,要么不兼容部分的命令,如:

0 * 14 * * ?:每天下午 2 点到 2:59 期间的每 1 分钟触发

0 0/5 14 * * ?:每天下午 2 点到 2:55 期间的每 5 分钟触发

0 0/5 14,18 * * ?:每天下午 2 点到 2:55 期间和下午 6 点到 6:55 期间的每 5 分钟触发

0 0-5 14 * * ?:每天下午 2 点到 2:05 期间的每 1 分钟触发

0 10,44 14 ? 3 WED:每年三月的星期三的下午 2:10 和 2: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 触发

1668 次点击
所在节点    程序员
11 条回复
coderxy
2023-10-10 18:40:11 +08:00
SingeeKing
2023-10-10 18:44:21 +08:00
好巧,昨天刚找完

最终结果…… 没有,换 Rust 了
Abirdcfly
2023-10-10 20:45:26 +08:00
jiangwei2222
2023-10-11 08:39:56 +08:00
你仅仅需要解析还是需要根据解析结果实现定期任务?仅仅解析的话这东西也不难呀,半小时就能手撸一个吧?

需要解析加执行的话用 https://github.com/robfig/cron 这个就行,不满足的地方你改下就行了,我以前给这个项目提过 pr ,你可以自定义解析规则
bitcapybara
2023-10-11 09:27:41 +08:00
@SingeeKing rust 用哪个解析库?
zhuoyue100
2023-10-11 10:21:54 +08:00
@jiangwei2222 我只需要解析就行了,好吧,我试着写一个
zhuoyue100
2023-10-11 16:37:38 +08:00
@jiangwei2222 现在常用的工具解析成这样
*/11 * * * * ?

2023-10-11 16:34:00
2023-10-11 16:34:11
2023-10-11 16:34:22
2023-10-11 16:34:33
2023-10-11 16:34:44
2023-10-11 16:34:55
2023-10-11 16:35:00
2023-10-11 16:35:11

这个不对吧,应该是每间隔 11 秒执行一次,并不是每次都要从分钟的 0 秒开始吧, 现在我手动写的时候卡这里了,不知道每次从 0 开始呢还是只按照时间间隔
zhuoyue100
2023-10-11 17:21:43 +08:00
@SingeeKing rust 版解析包也是这样吗?看上一楼
kkk9
2023-10-11 20:51:40 +08:00
@zhuoyue100 #7 cron 解析没错😄你的想法应该 cron+shell 配合,用 sleep 把 11 秒间隔延迟出来
SingeeKing
2023-10-12 02:38:09 +08:00
@zhuoyue100 cron 没办法按照时间间隔的,/ 前面的就是开始的秒数(* 和 0 行为一致)
zhuoyue100
2023-10-12 10:31:04 +08:00
@kkk9
@SingeeKing 好的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/980727

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX