今天推荐的软件是由 ouqiang 开源的 Linux Corntab 替代品 Gocron,业务中一直在使用,已稳定运行数年 👍。工作之余依据自己喜好和实际需求进行了部分功能的迭代,包括超级管理员,命令搜索,UI 布局......
Gocron-定时任务管理系统,使用 Go 语言开发的轻量级定时任务集中调度和管理系统, 用于替代 Linux-Crontab
Web 界面管理定时任务
crontab 时间表达式, 精确到秒
任务执行失败可重试
任务执行超时, 强制结束
任务依赖配置, A 任务完成后再执行 B 任务
账户权限控制
任务类型
Shell 任务
在任务节点上执行 shell 命令, 支持任务同时在多个节点上运行
Http 任务
访问指定的 URL 地址, 由调度器直接执行, 不依赖任务节点
查看任务执行结果日志
任务执行结果通知, 支持邮件、Slack 、Webhook
👆有需求的小伙伴可以自取噢
1
supersu 2022-08-21 21:05:08 +08:00 via Android
支持失败了发送邮件么~
|
2
supersu 2022-08-21 21:17:01 +08:00
刚看了一下只支持 mysql ,不知道有没有计划支持一下 sqlite
|
3
zoharSoul 2022-08-21 21:25:55 +08:00
对比 xxljob 或者 elasticJob 的优点是什么呀?
|
4
lishoujun 2022-08-21 23:26:59 +08:00
一看到 go 重写 我就默默去搜了一下 rustcron 习惯了。。。
|
9
Phiiiil OP @zoharSoul 你提到的这两个产品功能更多一些,gocron 相较而言就轻量化些啦,这就得看个人需求了,如果 gocron 足以支持业务需求的话,又何必求大而全呐...
|
10
JohnBull 2022-08-23 09:58:43 +08:00 via Android
就为了一个每天业务低峰期的跑批……何必呢
|
13
buaacss 2022-08-31 21:45:32 +08:00
@zoharSoul 我来说说吧。xxljob 是通过数据库锁实现的调度,gocron 这边是通过 grpc 连接。我不喜欢数据库锁的实现,本质上所有通过数据库实现调度的方案都是有状态的。这就需要精心维护状态机,否则就会出现重复调度或者不调度的问题。试想,数据库锁在任务执行后要更新时数据库崩溃了,服务端崩溃了,导致写锁没有被删除;在主库上执行了写锁,但是从库上没读到等等这类的问题其实都是状态机乱掉了。
而 gocron 通过 grpc 长连接消除了状态,缺点是如果连接断了任务也会跟着中断。我的认知里任务就是应该可以随时被中断,开发应该负责编写出随时能中断后再执行的任务,这样就可以重试直到成功为止。 不过无状态是双刃剑,gocorn web 端如果崩了,会导致所有运行中的任务都挂掉,这对一些人来说是绝对不可接受的。 |
15
WordTian 2023-02-19 21:03:28 +08:00
之前用过 Gocron ,但是因为需要 agent 在监听端口,在内网用没问题,在外网用安全风险太大,就放弃了。其实可以加一种节点模式,通过 ssh 连接去执行 shell 脚本
|
16
Joeith 2023-06-15 15:14:38 +08:00
SQLite ,还没支持吗,自用上 MySQL 过了
|