Skip to content
Elastic-Job is a distributed scheduled job framework, based on Quartz and Zookeeper.
Java JavaScript HTML Other
Branch: dev
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Update ISSUE_TEMPLATE Jan 29, 2018
elastic-job-lite-console Fixes #679. (#681) Oct 16, 2019
elastic-job-lite-core If user constantly create new jobs and then shutdown them, concurrent ( Oct 31, 2019
elastic-job-lite-lifecycle Fixes #679. (#681) Oct 16, 2019
elastic-job-lite-spring Error occurred if placeholder is used in 'reconcile-interval-minutes'… Oct 30, 2019
src/main/resources Fixes #679. (#681) Oct 16, 2019
.gitignore Add cloud scheduler tar file for doc. May 23, 2017
.travis.yml Fixes #679. (#681) Oct 16, 2019
LICENSE Initial commit Sep 11, 2015 Update the link url of the architecture diagram. (#692) Oct 30, 2019 Update the link url of the architecture diagram. (#692) Oct 30, 2019 remove cloud code Dec 19, 2017
pom.xml Upgrade quartz version from 2.2.1 to 2.3.0 (#688) Oct 24, 2019

Elastic-Job - distributed scheduled job solution

Build Status Maven Status Gitter Coverage Status GitHub release License



Elastic-Job-Lite Console GitHub release


Elastic-Job is a distributed scheduled job solution. Elastic-Job is composited from 2 independent sub projects: Elastic-Job-Lite and Elastic-Job-Cloud.

Elastic-Job-Lite is a centre-less solution, use lightweight jar to coordinate distributed jobs.

Elastic-Job-Lite and Elastic-Job-Cloud provide unified API. Developers only need code one time, then decide to deploy Lite or Cloud as you want.


  • Distributed schedule job coordinate
  • Elastic scale in and scale out supported
  • Failover
  • Misfired jobs refire
  • Sharding consistently, same sharding item for a job only one running instance
  • Self diagnose and recover when distribute environment unstable
  • Parallel scheduling supported
  • Job lifecycle operation
  • Lavish job types
  • Spring integrated and namespace supported
  • Web console



Elastic-Job-Lite Architecture

Release Notes


Quick Start

Add maven dependency

<!-- import elastic-job lite core -->

<!-- import other module if need -->

Job development

public class MyElasticJob implements SimpleJob {
    public void execute(ShardingContext context) {
        switch (context.getShardingItem()) {
            case 0: 
                // do something by sharding item 0
            case 1: 
                // do something by sharding item 1
            case 2: 
                // do something by sharding item 2
            // case n: ...

Job configuration

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns=""
    <!--configure registry center -->
    <reg:zookeeper id="regCenter" server-lists="yourhost:2181" namespace="dd-job" base-sleep-time-milliseconds="1000" max-sleep-time-milliseconds="3000" max-retries="3" />

    <!--configure job -->
    <job:simple id="myElasticJob" class="xxx.MyElasticJob" registry-center-ref="regCenter" cron="0/10 * * * * ?"   sharding-total-count="3" sharding-item-parameters="0=A,1=B,2=C" />
You can’t perform that action at this time.