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 60b9437653
job: more appropriate credential
8 years ago
.github Update issue template 8 years ago
bin pkg: use uber zap as default log 8 years ago
conf fixed issues 1 8 years ago
db pkg: mv models to cronsun 8 years ago
doc/img Update README 8 years ago
event pkg: 替换 event 包 8 years ago
log pkg: remove sunteng log 8 years ago
node Fix travis fail 8 years ago
utils pkg: 替换 util 包 8 years ago
web translate the log detail page 8 years ago
.editorconfig 检查用作key的id和名称,添加获取活动节点的接口 8 years ago
.gitignore Update README 8 years ago
.travis.yml Fix travis fail 8 years ago
LICENSE Initial commit 8 years ago
README.md Update README 8 years ago
README_ZH.md Update README 8 years ago
build.sh ui: i18n 8 years ago
client.go pkg: mv models to cronsun 8 years ago
common.go job: more appropriate credential 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: more appropriate credential 8 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 pkg: mv models to cronsun 8 years ago

README.md

cronsun Build Status

Note: The UI is in Chinese, English may be in the future.

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

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 opne=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.7+

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