V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RTSmile
V2EX  ›  Rust

Rust 是否有稍微成熟一点的定时任务的包

  •  
  •   RTSmile · 2022-10-18 23:12:09 +08:00 · 2563 次点击
    这是一个创建于 771 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,现在做个功能想要实现即使服务端重启也能在重启完成后自动执行重启过程中漏掉的定时任务。

    单纯的定时任务感觉好办,但是服务器端任务重启后自动执行漏掉的任务感觉不太好搞,Cargo 上面看了半天好像没啥成熟的定时任务包。

    13 条回复    2022-11-02 09:32:54 +08:00
    runtousa
        1
    runtousa  
       2022-10-19 08:28:58 +08:00 via iPhone
    楼主的需求其他语言的包能做到吗?
    maotao456
        2
    maotao456  
       2022-10-19 14:43:01 +08:00
    楼主有点把包的职责范围想得太宽了。
    billzhuang
        3
    billzhuang  
       2022-10-19 16:01:45 +08:00
    意味着这个包要有持久层,整个逻辑想想还挺复杂的。
    RTSmile
        4
    RTSmile  
    OP
       2022-10-19 16:21:26 +08:00
    @runtousa 可以,C#使用 Hangfire 不需要配置直接就能这么用。
    RTSmile
        5
    RTSmile  
    OP
       2022-10-19 16:22:11 +08:00
    @maotao456 然而 C#用 Hangfire 包不用配置就能直接这么用,想找这种功能的包肯定是看到有其他包实现了才找。
    RTSmile
        6
    RTSmile  
    OP
       2022-10-19 16:23:15 +08:00
    @billzhuang 持久层感觉也不是太麻烦,目前的想法是用 Redis 做持久层,但是这样怎么判断哪些任务在重启期间没有被执行就比较麻烦了。
    billzhuang
        7
    billzhuang  
       2022-10-19 16:35:42 +08:00
    c# hangfire 有这么强大么?我记得之前有个 bug ,已经启动的 task 无法 cancel 。
    RTSmile
        8
    RTSmile  
    OP
       2022-10-19 19:35:03 +08:00
    @billzhuang Hangfire 确实可以的,毕竟是有 Pro 版本收费的包。不过你说的这个 bug 我还没遇到过,回头我去试试看。
    0Vincent0Zhang0
        9
    0Vincent0Zhang0  
       2022-10-23 15:27:58 +08:00
    @RTSmile 关于“怎么判断哪些任务在重启期间没有被执行”,这个肯定要记录任务的执行日志,重启后根据执行日志进行判断。
    Nugine0
        10
    Nugine0  
       2022-10-24 17:00:35 +08:00 via Android
    实在没有的话,可以把别的语言的包移植过来用
    sxfscool
        11
    sxfscool  
       2022-10-25 08:46:41 +08:00
    需求也不复杂,在现有包上加个持久层就可以了吧
    RTSmile
        12
    RTSmile  
    OP
       2022-10-25 20:26:45 +08:00
    @sxfscool 判断重启期间有哪些任务没执行有点小麻烦
    lanlanye
        13
    lanlanye  
       2022-11-02 09:32:54 +08:00
    你需要额外一台不会重启的服务器定时记录需要执行的任务,是写日志还是推消息队列或者别的什么都可以,不然就启动时靠读取执行日志来计算之前有没有哪次漏掉了,反正定时任务肯定有个时间间隔吧……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6000 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 02:13 · PVG 10:13 · LAX 18:13 · JFK 21:13
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.