MCPcopy Index your code
hub / github.com/apache/shardingsphere-elasticjob

github.com/apache/shardingsphere-elasticjob @3.0.5 sqlite

repository ↗ · DeepWiki ↗ · release 3.0.5 ↗
2,800 symbols 11,655 edges 571 files 714 documented · 26%
README

ElasticJob - Distributed scheduled job

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

Stargazers over time

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.

You are welcome to communicate with the community via the mailing list.

License

GitHub release

Maven Status Build Status GitHub Workflow codecov Maintainability

Introduction

Using ElasticJob developers can no longer worry about the non functional requirements such as job 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 high availability and management, and can automatically operate by simply adding servers.

It is a lightweight, decentralized solution that provides distributed task sharding services.

ElasticJob Architecture

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

Extension points exported contracts — how you extend this code

LeaderExecutionCallback (Interface)
Leader server execution callback. [33 implementers]
registry-center/api/src/main/java/org/apache/shardingsphere/elasticjob/reg/base/LeaderExecutionCallback.java
SimpleJob (Interface)
Simple job. [43 implementers]
ecosystem/executor/simple/src/main/java/org/apache/shardingsphere/elasticjob/simple/job/SimpleJob.java
TracingStorageDatabaseType (Interface)
Tracing storage database type. [9 implementers]
ecosystem/tracing/rdb/src/main/java/org/apache/shardingsphere/elasticjob/tracing/rdb/storage/type/TracingStorageDatabaseType.java
JobItemExecutor (Interface)
Job item executor. @param type of ElasticJob [12 implementers]
api/src/main/java/org/apache/shardingsphere/elasticjob/spi/executor/item/JobItemExecutor.java
JobBootstrap (Interface)
Job bootstrap. [11 implementers]
bootstrap/src/main/java/org/apache/shardingsphere/elasticjob/bootstrap/JobBootstrap.java
JobShardingStrategy (Interface)
Job sharding strategy. [8 implementers]
kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/sharding/strategy/JobShardingStrategy.java
RestfulController (Interface)
RESTFul controller. [7 implementers]
restful/src/main/java/org/apache/shardingsphere/elasticjob/restful/RestfulController.java
CustomJob (Interface)
(no doc) [30 implementers]
spring/boot-starter/src/test/java/org/apache/shardingsphere/elasticjob/spring/boot/job/fixture/job/CustomJob.java

Core symbols most depended-on inside this repo

get
called by 307
registry-center/api/src/main/java/org/apache/shardingsphere/elasticjob/reg/base/RegistryCenter.java
getInstance
called by 264
kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/schedule/JobRegistry.java
getJobName
called by 142
api/src/main/java/org/apache/shardingsphere/elasticjob/spi/tracing/event/JobEvent.java
build
called by 139
api/src/main/java/org/apache/shardingsphere/elasticjob/api/JobConfiguration.java
newBuilder
called by 117
api/src/main/java/org/apache/shardingsphere/elasticjob/api/JobConfiguration.java
isJobNodeExisted
called by 114
kernel/src/main/java/org/apache/shardingsphere/elasticjob/kernel/internal/storage/JobNodeStorage.java
put
called by 112
restful/src/main/java/org/apache/shardingsphere/elasticjob/restful/mapping/UrlPatternMap.java
add
called by 108
restful/src/main/java/org/apache/shardingsphere/elasticjob/restful/wrapper/QueryParameterMap.java

Shape

Method 2,015
Class 513
Function 197
Interface 60
Enum 15

Languages

Java93%
TypeScript7%

Modules by API surface

docs/themes/hugo-theme-learn/static/js/jquery-2.x.min.js73 symbols
registry-center/provider/zookeeper-curator/src/main/java/org/apache/shardingsphere/elasticjob/reg/zookeeper/ZookeeperRegistryCenter.java34 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/schedule/JobScheduleControllerTest.java27 symbols
docs/themes/hugo-theme-learn/static/js/modernizr.custom.71422.js26 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/facade/SingleShardingJobFacadeTest.java24 symbols
api/src/main/java/org/apache/shardingsphere/elasticjob/api/JobConfiguration.java24 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/sharding/ExecutionServiceTest.java23 symbols
ecosystem/tracing/rdb/src/main/java/org/apache/shardingsphere/elasticjob/tracing/rdb/storage/repository/RDBJobEventRepository.java23 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/executor/ElasticJobExecutorTest.java22 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/storage/JobNodeStorageTest.java20 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/guarantee/GuaranteeServiceTest.java20 symbols
kernel/src/test/java/org/apache/shardingsphere/elasticjob/kernel/internal/failover/FailoverServiceTest.java20 symbols

Dependencies from manifests, versioned

ch.qos.logback:logback-classic
ch.qos.logback:logback-core
com.google.errorprone:error_prone_annotations
com.google.j2objc:j2objc-annotations
com.h2database:h2
com.mysql:mysql-connector-j
com.sun.mail:javax.mail
commons-codec:commons-codec
io.netty:netty-bom

Datastores touched

(mysql)Database · 1 repos
elastic_job_logDatabase · 1 repos

For agents

$ claude mcp add shardingsphere-elasticjob \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact