V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zhuoyue100
V2EX  ›  程序员

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

  •  
  •   zhuoyue100 · 2023-10-10 18:24:20 +08:00 · 1698 次点击
    这是一个创建于 444 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 触发

    11 条回复    2023-10-12 10:31:04 +08:00
    coderxy
        1
    coderxy  
       2023-10-10 18:40:11 +08:00
    SingeeKing
        2
    SingeeKing  
       2023-10-10 18:44:21 +08:00
    好巧,昨天刚找完

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

    需要解析加执行的话用 https://github.com/robfig/cron 这个就行,不满足的地方你改下就行了,我以前给这个项目提过 pr ,你可以自定义解析规则
    bitcapybara
        5
    bitcapybara  
       2023-10-11 09:27:41 +08:00 via iPhone
    @SingeeKing rust 用哪个解析库?
    zhuoyue100
        6
    zhuoyue100  
    OP
       2023-10-11 10:21:54 +08:00
    @jiangwei2222 我只需要解析就行了,好吧,我试着写一个
    zhuoyue100
        7
    zhuoyue100  
    OP
       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
        8
    zhuoyue100  
    OP
       2023-10-11 17:21:43 +08:00
    @SingeeKing rust 版解析包也是这样吗?看上一楼
    kkk9
        9
    kkk9  
       2023-10-11 20:51:40 +08:00
    @zhuoyue100 #7 cron 解析没错😄你的想法应该 cron+shell 配合,用 sleep 把 11 秒间隔延迟出来
    SingeeKing
        10
    SingeeKing  
       2023-10-12 02:38:09 +08:00 via iPhone
    @zhuoyue100 cron 没办法按照时间间隔的,/ 前面的就是开始的秒数(* 和 0 行为一致)
    zhuoyue100
        11
    zhuoyue100  
    OP
       2023-10-12 10:31:04 +08:00
    @kkk9
    @SingeeKing 好的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2854 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 08:20 · PVG 16:20 · LAX 00:20 · JFK 03:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.