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

2022-10-18 23:12:09 +08:00
 RTSmile

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

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

2550 次点击
所在节点    Rust
13 条回复
runtousa
2022-10-19 08:28:58 +08:00
楼主的需求其他语言的包能做到吗?
maotao456
2022-10-19 14:43:01 +08:00
楼主有点把包的职责范围想得太宽了。
billzhuang
2022-10-19 16:01:45 +08:00
意味着这个包要有持久层,整个逻辑想想还挺复杂的。
RTSmile
2022-10-19 16:21:26 +08:00
@runtousa 可以,C#使用 Hangfire 不需要配置直接就能这么用。
RTSmile
2022-10-19 16:22:11 +08:00
@maotao456 然而 C#用 Hangfire 包不用配置就能直接这么用,想找这种功能的包肯定是看到有其他包实现了才找。
RTSmile
2022-10-19 16:23:15 +08:00
@billzhuang 持久层感觉也不是太麻烦,目前的想法是用 Redis 做持久层,但是这样怎么判断哪些任务在重启期间没有被执行就比较麻烦了。
billzhuang
2022-10-19 16:35:42 +08:00
c# hangfire 有这么强大么?我记得之前有个 bug ,已经启动的 task 无法 cancel 。
RTSmile
2022-10-19 19:35:03 +08:00
@billzhuang Hangfire 确实可以的,毕竟是有 Pro 版本收费的包。不过你说的这个 bug 我还没遇到过,回头我去试试看。
0Vincent0Zhang0
2022-10-23 15:27:58 +08:00
@RTSmile 关于“怎么判断哪些任务在重启期间没有被执行”,这个肯定要记录任务的执行日志,重启后根据执行日志进行判断。
Nugine0
2022-10-24 17:00:35 +08:00
实在没有的话,可以把别的语言的包移植过来用
sxfscool
2022-10-25 08:46:41 +08:00
需求也不复杂,在现有包上加个持久层就可以了吧
RTSmile
2022-10-25 20:26:45 +08:00
@sxfscool 判断重启期间有哪些任务没执行有点小麻烦
lanlanye
2022-11-02 09:32:54 +08:00
你需要额外一台不会重启的服务器定时记录需要执行的任务,是写日志还是推消息队列或者别的什么都可以,不然就启动时靠读取执行日志来计算之前有没有哪次漏掉了,反正定时任务肯定有个时间间隔吧……

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

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

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

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

© 2021 V2EX