提供可视化界面的定时任务&常驻任务管理工具( https://github.com/iwannay/jiacrontab)
1.允许设置每个脚本的超时时间,超时操作可选择邮件通知管理者,或强杀脚本进程。
2.允许设置脚本的最大并发数。
3.一台 server 管理多个 client。
4.每个脚本都可在 server 端灵活配置,如测试脚本运行,查看日志,强杀进程,停止定时...。
5.允许添加脚本依赖(支持跨服务器),依赖脚本提供同步和异步的执行模式。
6.友好的 web 界面,方便用户操作。
7.脚本出错时可选择邮箱通知多人。
8.支持常驻任务,任务失败后可配置自动重启。
9.支持管道操作。
jiacrontab 由 server,client 两部分构成,两者完全独立通过 rpc 通信。
server:向用户提供可视化界面,调度多个 client。
client:实现定时逻辑,隔离用户脚本,将 client 布置于多台服务器上可由 server 统一管理。
每个脚本的定时格式完全兼容 linux 本身的 crontab 脚本配置格式。
1.下载 二进制文件。
2.解压缩进入目录(server,client)。
3.运行
$ nohup ./jiaserver &> server.log &
$ nohup ./jiaclient &> client.log &
1.安装 git,golang(version 1.11.x);可参考官网。
2.安装运行
$ cd $GOPATH/src
$ git clone [email protected]:iwannay/jiacrontab.git
$ cd jiacrontab
$ make build
$ cd app/jiacrontab/server
$ nohup ./jiaserver &> jiaserver.log &
$ cd app/jiacrontab/client
$ nohup ./jiaclient &> jiaclient.log &
<font color="red" size="3">浏览器访问 host:port (eg: localhost:20000) 即可访问可视化界面</font>
1、下载新版本压缩包,并解压。
2、如果旧版存在 server/.data 和 client/.data 则拷贝至新版相同位置
3、拷贝 server/data、client/data、server/server.ini 、client/client.ini 至新版相同位置
4、运行新版
;允许使用的 command 可以在后面添加自己的 command,用逗号隔开
allow_commands = php,/usr/local/bin/php,python,node,curl,wget,sh,uname,grep,cat,sleep
; pprof 监听地址
pprof_addr = :20002
; 本机 rpc 监听地址
listen= :20001
; 推送给 server 的地址 host:port 在可视化界面展示
; 写本机 IP 推送给 server 之后 server 记录下这个 ip, server 发送请求通过此地址
local_addr = localhost:20001
; server 地址 服务器 host:port 除非在同一台机器部署双端 否则需要更改
server_addr =localhost:20003
; 日志目录
dir = logs
; 自动清理大于一个月或者单文件体积大于 1G 的日志文件
clean_task_log = true
超时设置和超时操作
超时后会进行设置的超时操作 默认值为 0 不判断超时
最大并发数
最大并发数 控制 同时有几个脚本进程
默认最大并发数为 1,若不设置超时时间,当定时任务第二次执行时,若上一次执行还未完成
则会 kill 上一个脚本,进行本次执行。
防止脚本无法正常退出而导致系统资源耗尽
添加依赖
依赖就是用户脚本执行前,需要先执行依赖脚本,只有依赖脚本执行完毕才会执行当前脚本。
3.1 并发执行
并发执行依赖脚本,任意一个脚本出错或超时不会影响其他依赖脚本,但是会中断用户脚本
3.2 同步执行
同步执行依赖脚本,执行顺序为添加顺序,如果有一个依赖脚本出错或超时,则会中断后继依赖,以及用户脚本
脚本异常退出通知 如果脚本退出码不为 0,则认为是异常退出
常驻任务检查脚本进程是否退出,如果退出再次重启,保证脚本不停运行
其他同 定时任务
错误日志存放在配置文件设置的目录下
定时任务为 logs/crontab_task
计划任务为 daemon_task
日志文件准确为日期目录下的 ID.log ( eg: logs/crontab_task/2018/01/01/1.log )
echo ‘自定义错误信息’.“\n ”
)1.4.*版本演示地址 账号:admin 密码:123456
813377930 欢迎反馈问题
1
Sanko 2018-11-20 10:02:32 +08:00 via Android
支持
|
2
wq2016 2018-11-20 10:09:19 +08:00
不错
|
3
xiaoz 2018-11-20 10:32:51 +08:00 via Android
支持,待会儿安装试试。
|
4
Jaycee 2018-11-20 10:35:54 +08:00
已 star
|
7
tycallen 2018-11-20 11:13:13 +08:00
马克一下
|
8
xiaoz 2018-11-20 11:13:29 +08:00
1. 底部版权可以修改为 2018 了,哈哈。
2. 阁下的后台模板买的是 Layui 收费版吗? |
9
tt67wq 2018-11-20 11:19:01 +08:00
优秀啊
|
10
xuanyuanaosheng 2018-11-20 11:21:32 +08:00
没看到有 bash 脚本的执行啊,只看到使用命令行的,bash 的也可以吧
|
11
iwannay OP @xuanyuanaosheng 可以执行 bash 脚本。需要在配置文件里添加允许的命令
|
13
hubahuba 2018-11-20 11:25:22 +08:00
不错啊
|
14
xuanyuanaosheng 2018-11-20 11:29:55 +08:00
@iwannay 好的 有空试用下,这个 bash 脚本里面使用的命令就多了,这个就没必要每个都写了吧
|
15
xiaoz 2018-11-20 13:29:15 +08:00
一点点微不足道的小建议:
1. nginx 反向代理后未显示小绿锁,发现是 layui 默认头像调用的“ http://tva1.sinaimg.cn/crop.0.0.118.118.180/5db11ff4gw1e77d3nqrv8j203b03cweg.jpg ” 这个地址,建议将头像改为本地调用,或者用 gravatar 的 API,不然强迫症有点收不了,哈哈。 2. 你提供的二进制包下载速度太慢了,我下了好久才下下来。我放到我软件库收藏了: https://wget.ovh/linux/jiacrontab-v1.4.5-linux-amd64.zip 3. 再次感谢你的分享 |
16
aimiyooo 2018-11-20 13:32:48 +08:00
airflow 了解一下?
|
19
284716337 2018-11-20 13:57:48 +08:00
用起来真的不错,多谢分享
|
20
gjquoiai 2018-11-20 13:59:37 +08:00
竞品有点多啊,airflow,azkaban 什么的,spotify 他们也有一个忘记名字了
|
22
lsls931011 2018-11-20 14:26:12 +08:00
gocron, cronsun 也是使用 go 开发的管理工具, 可以参考着去做
|
23
songz 2018-11-20 15:54:21 +08:00
树莓派 2 能用不
|