Java distributed job scheduling framework supporting cron, fixed-rate, delayed and MapReduce-style tasks across server and worker nodes.
xuxueli/xxl-job
A distributed task scheduling platform with a web console, supporting Cron and fixed-interval triggers, sharded broadcast jobs, failover and retries.
- Stars
- 30,622
- Forks
- 11,494
- Open issues
- 72
- Last commit
- 13 days ago
What is it?
XXL-JOB is a distributed task scheduling platform for Java applications. Jobs are created, started, stopped and monitored from a web console, while executors run the job logic in one or more worker processes that register with a central scheduler. The scheduler is designed to run as a cluster, and executors can also be deployed in clusters so that job execution is highly available.
The platform covers common scheduling needs: Cron, fixed-rate and fixed-delay triggers, API and manual triggers, and parent-child job dependencies. Execution is controlled by routing strategies such as round robin, random, consistent hashing, and failover, plus sharded broadcast jobs that run on every executor node. Failed jobs can be retried, timed-out jobs are interrupted, and failure alerts are sent by email with an extension point for other channels.
Operations features include online job editing with a GLUE web IDE that supports shell, Python, Node.js, PHP and PowerShell scripts, rolling execution logs, run reports, user and executor-level permissions, and audit logs. Communication between scheduler and executors is encrypted, and an OpenAPI based on REST lets services written in other languages integrate.
Key features
- 01Web console for creating, starting, stopping and editing jobs without redeploying.
- 02Cron, fixed-interval, fixed-delay, API, manual and parent-child job triggers.
- 03Sharded broadcast jobs and routing strategies including round robin, consistent hashing and failover.
- 04Job timeouts, failure retries and email alerts with an extension point for other channels.
- 05GLUE web IDE for online script and code jobs, with version history.
- 06Language-agnostic RESTful OpenAPI for integrating executors written in other languages.
Use cases
- Running scheduled data synchronization or settlement jobs across a cluster of Java services.
- Splitting a large batch workload into shards that run in parallel on several executor nodes.
- Triggering shell or Python maintenance scripts on a schedule with centralized logs and alerts.
- Replacing scattered cron jobs on multiple servers with one monitored scheduling console.
Quick start
- 1
Clone the repository from GitHub
- 2
Initialize the database with the SQL script in the repo
- 3
Run the admin console with Docker
docker pull xuxueli/xxl-job-admin
Things to know
- Licensed under GPL-3.0, a copyleft license that requires derivative works to be open-sourced under the same terms.
- Requires a Java backend and a database setup, so self-hosting takes some effort.
Topics
FAQ
- What is xxl-job?
- A distributed task scheduling platform with a web console, supporting Cron and fixed-interval triggers, sharded broadcast jobs, failover and retries. XXL-JOB is a distributed task scheduling platform for Java applications. Jobs are created, started, stopped and monitored from a web console, while executors run the job logic in one or more worker processes that register with a central scheduler. The scheduler is designed to run as a cluster, and executors can also be deployed in clusters so that job execution is highly available.
- Is xxl-job free to use? What license does it have?
- xxl-job is open source under the GPL-3.0 license. Check the license terms before using it in commercial products.
- Is xxl-job still maintained?
- Actively maintained. The last commit to xxl-job was on Oct 9, 2026.
- What can I use xxl-job for?
- Running scheduled data synchronization or settlement jobs across a cluster of Java services. Splitting a large batch workload into shards that run in parallel on several executor nodes. Triggering shell or Python maintenance scripts on a schedule with centralized logs and alerts. Replacing scattered cron jobs on multiple servers with one monitored scheduling console.
- How do I install xxl-job?
- Clone the repository from GitHub Initialize the database with the SQL script in the repo Run the admin console with Docker: docker pull xuxueli/xxl-job-admin
- Where can I get xxl-job?
- The source code and installation instructions are on GitHub: https://github.com/xuxueli/xxl-job
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Self-hostable workflow orchestrator that runs your existing scripts, SSH commands and containers from declarative YAML, as a single binary with no database.
A Textual-based terminal dashboard for creating, editing, pausing and monitoring cron jobs on local machines and remote servers over SSH.
Java client for Valkey and Redis that adds distributed collections, locks, queues, and services on top of the base commands.
Open-source TypeScript platform for building and deploying durable, long-running AI agents and background workflows with retries, queues and observability.
An opinionated Java framework for building production-grade, Spring-powered applications and services with minimal setup.