[Open Source] A Lightweight, Easy-to-Use Distributed Task Scheduling and Computing Framework

Open SourceProcess Management
2026-06-28 06:23 7 次浏览 • 0 次下载 0KB
[Open Source] A Lightweight, Easy-to-Use Distributed Task Scheduling and Computing Framework

1. Project Overview

Logo

A Distributed Task Scheduling and Distributed Computing Framework

A distributed task scheduling and computing framework that provides not only standard task scheduling features but also advanced capabilities such as pausing or canceling running tasks, resuming paused tasks, task sharding, failure retries, broadcast tasks, task dependencies, workflow tasks (DAG), separate deployment of managers and workers, and a Web administration console.

Lightweight and easy to use, particularly suitable for executing long-running tasks. Feature-rich, stable, and reliable, with proven performance in production environments.

2. Open Source License

Licensed under Apache-2.0

3. Screenshots

Image
Image
Image
Image
Image

4. Feature Overview

Features

  • It has two roles: Manager (Supervisor) and Executor (Worker). Supervisor and Worker can be deployed separately.
  • Supervisor and Worker discover each other through a registry. Supported registries include: Database, Redis, Consul, Nacos, Zookeeper, and Etcd.
  • Supervisor is responsible for creating tasks and dispatching them to Workers for execution. Supported task dispatch methods include: Redis and Http.
  • A Job group must be specified. Jobs are dispatched only to Workers belonging to the designated group.
  • Provides task sharding capabilities. Override the JobSplitter#split method to split a task into multiple subtasks, enabling distributed task execution and parallel processing.
  • Supports pausing and canceling running tasks. Paused tasks can be resumed, and failed tasks can be retried.
  • Supports task execution state persistence (Savepoint), allowing manually or unexpectedly paused tasks to resume from their previous execution state.
  • When a task throws PauseTaskException during execution, all tasks under the corresponding instance will be paused, including tasks dispatched to other Worker machines.
  • Supports broadcast tasks, which are dispatched to all Workers within the specified group.
  • Supports parent-child dependencies between Jobs. Once dependencies are configured, multiple Jobs are executed sequentially according to the specified dependency order.
  • Supports DAG workflows. The jobExecutor can be configured using complex DAG expressions, such as: A->B,C,(D->E)->F,G->H
  • Supports automatic resumption of running Tasks after a Worker (service) deployment is completed (see the shutdown_strategy configuration).
  • Provides a Web administration console for job configuration, task monitoring, and other operations through a graphical interface.

Comparison

 

Quartz

Elastic-Job

Xxl-Job

Disjob

Trigger Types

Cron

Cron

Cron, fixed interval, parent-child dependencies

Cron, specified time, fixed interval, fixed delay, parent-child dependencies

Task Orchestration

No

No

No

DAG Expressions

Task Sharding

No

Static Sharding

Broadcast Tasks

Broadcast Tasks, Dynamic Sharding

Stop and Resume

No

No

Terminate Running Tasks

Pause running tasks and resume paused tasks

Save Execution Snapshots

No

No

No

Yes

Failure Retries

No

Failover

Yes

Yes

Admin Console

No

Yes

Yes

Yes

Monitoring and Alerts

No

Email

Email

Email, DingTalk, WeCom, Feishu, SMS, and more

5. Tech Stack

Architecture

  • Overall Workflow
Image
  • Code Structure
disjob                                        # Main Project ① pom.xml
├── disjob-admin                              # Admin Console Project ② pom.xml (Secondarily developed based on the Ruoyi framework)
├── disjob-alert                              # Alert Module
│   ├── disjob-alert-api                      # Abstract Alert Interface Layer
│   ├── disjob-alert-email                    # Email Alerts
│   ├── disjob-alert-im                       # Instant Messaging Alerts (DingTalk, WeCom, Feishu, etc.)
│   └── disjob-alert-sms                      # SMS Alerts
├── disjob-bom                                # Maven Project BOM Module
├── disjob-common                             # Common Utility Module
├── disjob-core                               # Core classes related to task scheduling (such as enums, interface definitions, and interface parameters)
├── disjob-dispatch                           # Task Dispatch Module
│   ├── disjob-dispatch-api                   # Abstract Interface Layer for Task Dispatch
│   ├── disjob-dispatch-http                  # HTTP Implementation for Task Dispatch
│   └── disjob-dispatch-redis                 # Redis Implementation for Task Dispatch
├── disjob-id                                 # Distributed ID Generation Module
├── disjob-registry                           # Server (Supervisor & Worker) Registration Module
│   ├── disjob-registry-api                   # Abstract Interface Layer for the Server Registry
│   ├── disjob-registry-consul                # Server Registry: Consul Implementation
│   ├── disjob-registry-database              # Server Registry: Database Implementation
│   ├── disjob-registry-etcd                  # Server Registry: Etcd Implementation
│   ├── disjob-registry-nacos                 # Server Registry: Nacos Implementation
│   ├── disjob-registry-redis                 # Server Registry: Redis Implementation
│   └── disjob-registry-zookeeper             # Server Registry: Zookeeper Implementation
├── disjob-reports                            # Aggregates Test Coverage Reports from All Modules
├── disjob-samples                            # Samples Project ③ pom.xml
│   ├── disjob-samples-conf                   # Configuration Files Used by Samples
│   ├── disjob-samples-frameless-worker       # Example of Standalone Worker Deployment (Standard Java Main Application)
│   ├── disjob-samples-springboot-merged      # Example of Combined Supervisor and Worker Deployment (Spring Boot Application)
│   ├── disjob-samples-springboot-supervisor  # Example of Standalone Supervisor Deployment (Spring Boot Application)
│   └── disjob-samples-springboot-worker      # Example of Standalone Worker Deployment (Spring Boot Application)
├── disjob-supervisor                         # Supervisor Code
├── disjob-test                               # For Testing Assistance
└── disjob-worker                             # Worker Code
#1
资源直链https://gitee.com/dromara/disjob
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare