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.
 
 
 
miraclesu 7f5c0f5531 bin: fix log's level & caller 8 years ago
.github Update issue template 8 years ago
bin bin: fix log's level & caller 8 years ago
conf Added login and accounts manager modules 8 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 Fixed "Remember me" feature 8 years ago
.editorconfig
.gitignore Update README 8 years ago
.travis.yml release: v0.1.1 8 years ago
LICENSE
README.md Added login and accounts manager modules 8 years ago
README_ZH.md Added login and accounts manager modules 8 years ago
account.go Added login and accounts manager modules 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 Fixed update job issue 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 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

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.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