cronsun
is a distributed cron-style job system. It's similar with crontab
on stand-alone *nix
.
The goal of this project is to make it much easier to manage jobs on lots of machines and provides high availability.
cronsun
is different from Azkaban, Chronos, Airflow.
- Easy manage jobs on multiple machines
- Managemant panel
- Mail service
- Multi-language support
[web]
|
--------------------------
(add/del/update/exec jobs)| |(query job exec result)
[etcd] [mongodb]
| ^
-------------------- |
| | | |
[node.1] [node.2] [node.n] |
(job exec fail)| | | |
[send mail]<-----------------------------------------(job exec result)
cronsun
support security with security.json
config. When open=true
, job command is only allow local files with special extension on the node.
{
"open": true,
"#users": "allowed execution users",
"users": [
"www", "db"
],
"#ext": "allowed execution file extension",
"ext": [
".cron.sh", ".cron.py"
]
}
Install from binary releases, download and unzip.
Or build from source, require go >= 1.7+
go get -u github.com/shunfei/cronsun
cd $GOPATH/src/github.com/shunfei/cronsun
sh build.sh
- Install MongoDB
- Install etcd3
- Modify config in
conf
dir - Start Node:
./cronnode -conf conf/base.json
, start Web:./cronweb -conf conf/base.json
- Opne
http://127.0.0.1:7079/ui/
with the browser
Brief:
Exec result:
Job:
Node:
cron is base on robfig/cron