You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Go to file
miraclesu 012c974cd1
etcd client v3 require go >= 1.9
7 years ago
.github Update issue template 8 years ago
bin bin: fix log's level & caller 8 years ago
conf embedded static assets 7 years ago
db pkg: mv models to cronsun 8 years ago
doc/img Add files via upload 8 years ago
event pkg: 替换 event 包 8 years ago
log Added login and accounts manager modules 8 years ago
node Fixed update job issue 8 years ago
utils Added login and accounts manager modules 8 years ago
web fix frontend error on en-* language env. 7 years ago
.editorconfig 检查用作key的id和名称,添加获取活动节点的接口 8 years ago
.gitignore embedded static assets 7 years ago
.travis.yml etcd client v3 require go >= 1.9 7 years ago
LICENSE Initial commit 8 years ago
README.md etcd client v3 require go >= 1.9 7 years ago
README_ZH.md etcd client v3 require go >= 1.9 7 years ago
account.go Added login and accounts manager modules 8 years ago
build.sh embedded static assets 7 years ago
client.go pkg: mv models to cronsun 8 years ago
common.go better error log 8 years ago
errors.go pkg: mv models to cronsun 8 years ago
group.go pkg: remove sunteng log 8 years ago
id.go pkg: mv models to cronsun 8 years ago
job.go job: better limiter 7 years ago
job_log.go pkg: remove sunteng log 8 years ago
mdb.go pkg: mv models to cronsun 8 years ago
node.go pkg: remove sunteng log 8 years ago
noticer.go pkg: remove sunteng log 8 years ago
once.go pkg: mv models to cronsun 8 years ago
proc.go pkg: remove sunteng log 8 years ago
release.sh Add releash script 8 years ago
version.go Fixed job update bug 8 years ago

README.md

cronsun Build Status

cronsun is a distributed cron-style job system. It's similar with crontab on stand-alone *nix.

简体中文

Purpose

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.

Features

  • Easy manage jobs on multiple machines
  • Managemant panel
  • Mail service
  • Multi-language support
  • Simple authentication and accounts manager(default administrator email and password: admin@admin.com/admin)

Architecture

                                                [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)

Security

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"
    ]
}

Getting started

Setup / installation

Install from binary releases, download and unzip.

Or build from source, require go >= 1.9+

go get -u github.com/shunfei/cronsun
cd $GOPATH/src/github.com/shunfei/cronsun
sh build.sh

Run

  1. Install MongoDB
  2. Install etcd3
  3. Modify config in conf dir
  4. Start Node: ./cronnode -conf conf/base.json, start Web: ./cronweb -conf conf/base.json
  5. Opne http://127.0.0.1:7079/ui/ with the browser

Screenshot

Brief:

Exec result:

Job:

Node:

Credits

cron is base on robfig/cron