Back to rankings

shunfei/cronsun

Go

A Distributed, Fault-Tolerant Cron-Style Job System.

crontabgolangjob-schedulercrongofault-tolerance
Star Growth
Stars
2.9k
Forks
457
Weekly Growth
Issues
78
1k2k
May 2017May 2020Jun 2023Jul 2026
ArtifactsGo Modulesgo get github.com/shunfei/cronsun
README

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
  • Management panel
  • Mail service
  • Multi-language support
  • Simple authentication and accounts manager(default administrator email and password: admin@admin.com/admin)

Status

cronsun has been tested in production for years on hundreds of servers. Although the current version is not release as an stable version, but we think it is completely available for the production environment. We encourage you to try it, it's easy to use, see how it works for you. We believe you will like this tool.

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 extensions",
    "ext": [
        ".cron.sh", ".cron.py"
    ]
}

Getting started

Setup / installation

Install from binary latest release

Or build from source, require go >= 1.11+.

NOTE: The branch master is not in stable, using Cronsun for production please checkout corresponding tags.

export GO111MODULE=on
go get -u github.com/shunfei/cronsun
cd $GOPATH/src/github.com/shunfei/cronsun
go mod vendor
sh build.sh

Run

  1. Install MongoDB
  2. Install etcd3
  3. Open and update Etcd(conf/etcd.json) and MongoDB(conf/db.json) configurations
  4. Start cronnode: ./cronnode -conf conf/base.json, start cronweb: ./cronweb -conf conf/base.json
  5. Open http://127.0.0.1:7079 in browser
  6. Login with username admin@admin.com and password admin

Screenshot

Brief:

Exec result:

Job:

Node:

Credits

cron is base on robfig/cron

Related repositories
whyour/qinglong

支持 Python3、JavaScript、Shell、Typescript 的定时任务管理平台(Timed task management platform supporting Python3, JavaScript, Shell, Typescript)

TypeScriptnpmApache License 2.0crontabpython
qinglong.online
19.7k3.2k
agenda/agenda

Lightweight job scheduling for Node.js

HTMLOthercronscheduler
agenda.github.io/agenda/
9.7k847
ouqiang/gocron

定时任务管理系统

GoGo ModulesMIT Licensecronscheduler
6.3k1.3k
jhuckaby/Cronicle

A simple, distributed task scheduler and runner with a web based UI.

JavaScriptnpmOthercroncrontab
cronicle.net
5.8k499
zxlie/FeHelper

😍FeHelper--Web前端助手(Awesome!Chrome & Firefox & MS-Edge Extension, All in one Toolbox!)

JavaScriptnpmMIT Licensefehelperjson
fehelper.com
5.6k1.3k
mesos/chronos

Fault tolerant job scheduler for Mesos which handles dependencies and ISO8601 based schedules

ScalaApache License 2.0chronosmesos
mesos.github.io/chronos/
4.4k520
opendevops-cn/opendevops

CODO是一款为用户提供企业多混合云、全球一站式DevOps、自动化运维、完全开源的云管理平台、自动化运维平台

PythonPyPIGNU General Public License v3.0democmdb
opendevops.cn
4.1k1k
guohongze/adminset

自动化运维平台:CMDB、CD、DevOps、资产管理、任务编排、持续交付、系统监控、运维管理、配置管理

PythonPyPIGNU General Public License v2.0cmdbdevops
adminset.cn
3.4k1.4k
breejs/bree

Bree is a Node.js and JavaScript job task scheduler with worker threads, cron, Date, and human syntax. Built for @ladjs, @forwardemail, @spamscanner, @cabinjs.

JavaScriptnpmMIT Licensejobscheduler
jobscheduler.net
3.3k89
alseambusher/crontab-ui

Easy and safe way to manage your crontab file

JavaScriptnpmMIT Licensenodejscrontab
lifepluslinux.blogspot.com/2015/06/crontab-ui-easy-and-safe-way-to-manage.html
3.3k497
Hexagon/croner

Trigger functions or evaluate cron expressions in JavaScript or TypeScript. No dependencies. Most features. Node. Deno. Bun. Browser.

TypeScriptnpmMIT Licensecronscheduling
croner.56k.guru
2.6k69
quantum-elixir/quantum-core

:watch: Cron-like job scheduler for Elixir

ElixirApache License 2.0elixirtimezone
hexdocs.pm/quantum/
2.4k153