xuxueli/xxl-job
DevOps & Self-hostingA distributed task scheduling platform for running cron, script, sharded, and AI jobs across clustered executors.
What it does
XXL-JOB is a Java-based distributed task scheduling framework. A central scheduler (调度中心) manages jobs through a web UI, and executor clusters (执行器) register themselves and run the actual task logic. It is aimed at teams that need scheduled jobs to survive restarts, scale across machines, and be observable rather than relying on a single local cron.
Key capabilities include cron, fixed-interval, fixed-delay, API/event, manual, and parent-child task triggers; sharding broadcast with dynamic sharding; routing strategies such as round-robin, random, consistent hash, failover, and busy-transfer; blocking and timeout policies; failure retry; email alerting; rolling real-time logs; and a GLUE web IDE for editing job code online with version history features list. Executor registration is automatic features list, and scheduling consistency across a scheduler cluster is enforced with a DB lock features list. The project also ships an AI executor with built-in handlers integrating spring-ai, ollama, openclaw, and dify features list.
Getting started
The project documentation is the authoritative setup guide: the Chinese documentation and English documentation cover deployment. The repository publishes xxl-job-core on Maven Central Maven artifact and an official admin image on Docker Hub admin image, which are the natural starting points.
A typical path, once you have followed the docs to prepare a MySQL database:
- Pull and start the scheduler admin container from xxl-job-admin, configured against your database.
- Add the
xxl-job-coredependency from Maven Central to your executor application. - Configure the executor's scheduler address and app name so it registers automatically with the admin.
- Create a job in the web UI, choose a trigger and routing strategy, and run it. The result and rolling logs are visible in the admin UI.
The provided README does not include the concrete container command, required environment variables, or the executor configuration keys; use the official documentation for those exact values rather than guessing them.
Operational constraints
- The stack is Java-based and the scheduler keeps its state in a database; plan for a MySQL-compatible store and database access for the admin.
- The scheduler and executors are designed to be deployed as clusters for HA, which means you need to configure them accordingly rather than running a single node.
- Runtime behavior depends on the blocking, timeout, retry, and routing policies you choose per job; defaults should be reviewed for long-running or high-frequency tasks.
- The license is GPL-3.0 license; the README offers contact for project authorization.
- The README includes sponsor links and a very long list of adopter companies; these are promotional/community content, not evidence of fitness for your workload.
HotRepo's take
XXL-JOB is a mature, long-running project (created in 2015) with a large Java user base, 30,654 stars and 11,490 forks at the last recorded snapshot. On the 2026-11-07 Java daily list it gained 2 stars and reached position 15; with only this single snapshot there is no basis for claiming a growth trend, and no all-language daily rank is recorded. The real takeaway for readers is that this is a stable, feature-dense scheduler with a substantial operational surface: sharding, failover, route policies, and an online IDE all require deliberate configuration. It is a fit for Java teams already running clustered services and a database-backed admin, less so for a trivial single-machine cron replacement.
Written by AI from the project's README, updated . The project's own docs are the source of truth.