OP 运行了不少 crontab 定时任务,一个痛点是很难主动发现定时任务的异常,往往是等未看到执行成功的结果才知道定时任务跑不起来。
经过一番搜寻,OP 目前发现了两种主动发现定时任务异常的思路:
所以 OP 想开发一个工具来管理定时任务。通过识别定时任务的 stderr/exit code ,工具可在 连续 M 次执行失败 /过去 N 分钟未成功执行 之类的场景下发送邮件 /telegram 等告警。这样定时任务就可以不用做啥改动了。
其他一些 OP 没有强烈需求但可能有用的功能:
Q: 为啥不用青龙面板?
A: 青龙面板看起来是单独做了一套执行环节(需要手动指定依赖),而笔者倾向于远程在 linux server 上开发+调试完后用相同的环境运行 crontab ,不然安装 chrome-driver 等比较重的依赖会比较麻烦。
大家怎么看?
1
perfectlife 2023-01-17 18:05:59 +08:00
啥时候开发,我 star 一下
|
2
f5c4ebc2 2023-01-17 19:42:31 +08:00 via Android
感觉这个想法挺好的,我也有类似的需求,但目前碰到的情况基本都可以通过 OP 提到的第一种方法解决,代码侵入性问题可以通过类似装饰器的方法在一定程度上解决。
另一种现成的方法是用云函数,设置一下自动告警的规则就可以了,比较灵活方便。 |
3
37Y37 2023-01-17 20:04:43 +08:00 via Android
我做过类似的,功能更强大,跑下来也比较稳定,看看是不是有参考的价值 https://blog.ops-coffee.cn/s/yjftypchd03ftglv_jsqww
|
4
chuanqirenwu 2023-01-17 21:07:30 +08:00
无侵入式的实现方案有了吗?
|
5
815979670 2023-01-18 01:27:32 +08:00
@37Y37 我有个类似的想法构思,看你的文章挺有参考价值的。
我想尝试 sqlite + 单个主程序的方式 用一个小而美的形态来实现这个 |
6
ft3312591 2023-01-18 09:56:22 +08:00
有没有纯粹一点只有 crontab 远程执行的东西,我只想把所有脚本都统一放在一起,管理方便
|
9
marquina OP @chuanqirenwu 没呢,所以准备做一个
|
10
chuanqirenwu 2023-01-18 17:33:28 +08:00
@marquina 方案都没有怎么实现呀?我最近也在做类似的东西,仿照的 healthchecks.io 的做法,不知道无侵入式应该怎么实现呢?
|
11
marquina OP @chuanqirenwu 技术细节的话帖子里说了一部分。新流程下该工具会充当 crontab 和执行命令的中间层,工具执行完命令后会检查 stderr 和 exit code ,判断是否成功。
|
12
chuanqirenwu 2023-01-18 20:19:15 +08:00
哦哦,那就类似于 ansible 或者 AWX 了,需要自己集成调度器。
|
13
julyclyde 2023-01-19 09:40:24 +08:00
yet another
|
16
marquina OP #15 @ft3312591 https://github.com/ouqiang/gocron 采用中控节点+执行节点的架构设计,应该是能满足你的需求的
|
17
marquina OP 发现开源项目 ouqiang/gocron ,整体比较重,但从功能上来说基本满足我的需求了。
|