Distributed scheduled job framework

Clone this repo:
  1. 1df7bea Increase testcases' coverage of module elasticjob-lite-spring-boot-starter (#1729) by Yanjie Zhou · 3 days ago master
  2. e4e86be Update company list (#1727) by 吴伟杰 · 3 days ago
  3. 4669c95 Correct mistakes in JavaDoc (#1723) by 吴伟杰 · 8 days ago
  4. 40a6ced Adjust delay for HttpJobExecutorTest (#1722) by 吴伟杰 · 8 days ago
  5. 66ae59e Release HTTP request after handling (#1713) by 吴伟杰 · 11 days ago

ElasticJob - distributed scheduled job solution

Official website: https://shardingsphere.apache.org/elasticjob/

Stargazers over time

ElasticJob is a distributed scheduling solution consisting of two separate projects, ElasticJob-Lite and ElasticJob-Cloud.

Through the functions of flexible scheduling, resource management and job management, it creates a distributed scheduling solution suitable for Internet scenarios, and provides a diversified job ecosystem through open architecture design. It uses a unified job API for each project. Developers only need code one time and can deploy at will.

ElasticJob became an Apache ShardingSphere Sub-project on May 28 2020.

Welcome communicate with community via mail list.

License

GitHub release

Maven Status Build Status GitHub Workflow codecov

Introduction

Using ElasticJob can make developers no longer worry about the non functional requirements such as jobs scale out, so that they can focus more on business coding; At the same time, it can release operators too, so that they do not have to worry about jobs high availability and management, and can automatic operation by simply adding servers.

ElasticJob-Lite

A lightweight, decentralized solution that provides distributed task sharding services.

ElasticJob-Lite Architecture

ElasticJob-Cloud

Uses Mesos to manage and isolate resources.

ElasticJob-Cloud Architecture

ElasticJob-LiteElasticJob-Cloud
DecentralizationYesNo
Resource AssignNoYes
Job ExecutionDaemonDaemon + Transient
Deploy DependencyZooKeeperZooKeeper + Mesos

Features

  • Elastic Schedule

    • Support job sharding and high availability in distributed system
    • Scale out for throughput and efficiency improvement
    • Job processing capacity is flexible and scalable with the allocation of resources
  • Resource Assign

    • Execute job on suitable time and assigned resources
    • Aggregation same job to same job executor
    • Append resources to newly assigned jobs dynamically
  • Job Governance

    • Failover
    • Misfired
    • Self diagnose and recover when distribute environment unstable
  • Job Dependency (TODO)

    • DAG based job dependency
    • DAG based job item dependency
  • Job Open Ecosystem

    • Unify job api for extension
    • Support rich job type lib, such as dataflow, script, HTTP, file, big data
    • Focus business SDK, can work with Spring IOC
  • Admin Console

    • Job administration
    • Job event trace query
    • Registry center management

Environment Required

Java

Java 8 or above required.

Maven

Maven 3.5.0 or above required.

ZooKeeper

ZooKeeper 3.6.0 or above required. See details

Mesos (ElasticJob-Cloud only)

Mesos 1.1.0 or compatible version required (For ElasticJob-Cloud only). See details