Skip to content
Dkron - Distributed, fault tolerant job scheduling system https://dkron.io
Go CSS HTML JavaScript Shell Ruby Other
Branch: master
Clone or download
Latest commit 3cabe42 Jul 15, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Issue template Dec 2, 2018
builder/files Fix sample dkron.yml for slack configuration May 15, 2019
builtin/bins Replace old repository path (#563) Jul 5, 2019
cmd Replace old repository path (#563) Jul 5, 2019
cron Fix Typo May 14, 2018
dkron Fix dependent job updates in parent jobs on change or delete Jul 7, 2019
docs Move swagger.yaml to website May 17, 2018
plugin Replace old repository path (#563) Jul 5, 2019
proto Implement server selection using consistent hash (#522) May 1, 2019
scripts Replace old repository path (#563) Jul 5, 2019
static Replace old repository path (#563) Jul 5, 2019
templates Fixes paginator gap and add First and Last button (#561) Jul 1, 2019
website Update installation.md Jul 15, 2019
.dockerignore Don't dockerignore dist folder, it is needed by gorelease docker builder Jan 10, 2019
.gitignore Ignore node modules Jan 10, 2019
.gitmodules New version of docs theme Jun 20, 2018
.goreleaser.yml Replace old repository path (#563) Jul 5, 2019
.travis.yml Correct test target in Makefile, and make .travis.yml use it Sep 8, 2018
CHANGELOG.md Update changelog Jul 8, 2019
CODE_OF_CONDUCT.md Add code of conduct Oct 9, 2018
COMM-LICENSE Replace old repository path (#563) Jul 5, 2019
Dockerfile Use 1.11 Sep 10, 2018
Dockerfile.hub Add tzdata to Dockerfile for release Mar 3, 2019
LICENSE Rename Aug 19, 2015
Makefile Reorg asset generation in subpackages Jan 10, 2019
README.md Replace old repository path (#563) Jul 5, 2019
docker-compose.yml Replace old repository path (#563) Jul 5, 2019
go.mod Go mod tidy Jul 8, 2019
go.sum Go mod tidy Jul 8, 2019
main.go Replace old repository path (#563) Jul 5, 2019

README.md

Dkron - Distributed, fault tolerant job scheduling system GoDoc Build Status

Website: http://dkron.io/

Dkron is a distributed cron service, easy to setup and fault tolerant with focus in:

  • Easy: Easy to use with a great UI
  • Reliable: Completely fault tolerant
  • High scalable: Able to handle high volumes of scheduled jobs and thousands of nodes

Dkron is written in Go and leverage the power of distributed key-value stores and serf for providing fault tolerance, reliability and scalability while keeping simple and easily installable.

Dkron is inspired by the google whitepaper Reliable Cron across the Planet and by Airbnb Chronos borrowing the same features from it.

Dkron runs on Linux, OSX and Windows. It can be used to run scheduled commands on a server cluster using any combination of servers for each job. It has no single points of failure due to the use of the Gossip protocol and fault tolerant distributed databases.

You can use Dkron to run the most important part of your company, scheduled jobs.

Project status

Dkron v1.x is stable and being used in production by several companies.

Dkron v2.x is under heavy development but approaching stability. Follow https://github.com/distribworks/dkron/pull/543 for changes.

Installation

Installation instructions

Full, comprehensive documentation is viewable on the Dkron website

Development Quick start

The best way to test and develop dkron is using docker, you will need Docker installed before proceding.

Clone the repository.

Next, run the included Docker Compose config:

docker-compose up

This will start Dkron instances. To add more Dkron instances to the clusters:

docker-compose scale dkron=4

Check the port mapping using docker-compose ps and use the browser to navigate to the Dkron dashboard using one of the ports mapped by compose.

To add jobs to the system read the API docs.

Frontend development

Dkron dashboard is built using a combinations of golang templates and AngularJS code.

To start developing the dashboard enter the static directory and run npm install to get the frontend dependencies.

Change code in JS files or in templates, then run make gen to generate bindata.go file. This is a method of embedding resources in Go applications.

Resources

Chef cookbook https://supermarket.chef.io/cookbooks/dkron

Python Client Library https://github.com/oldmantaiter/pydkron

Ruby client https://github.com/jobandtalent/dkron-rb

PHP client https://github.com/gromo/dkron-php-adapter

Get in touch

Sponsor

This project is possible thanks to the Support of Jobandtalent

You can’t perform that action at this time.