Why XXL‑JOB Is the Lightweight Distributed Scheduler Used by 290+ Companies
XXL‑JOB is an open‑source, lightweight distributed task scheduling platform adopted by over 290 enterprises, offering 35 features, a decoupled scheduling‑center and executor architecture, and a thriving GitHub community with more than 12 K stars and 5 K forks.
Overview
XXL‑JOB is an open‑source lightweight distributed task scheduling platform. The source code is hosted at https://github.com/xuxueli/xxl-job, which has over 12 K stars and 5 K forks.
Key Features
Visual, dynamic task management (create, update, delete).
GLUE support for online code editing and hot‑reload.
Configurable alarm/notification mechanisms.
Real‑time effect of configuration changes.
Execution monitoring, log retrieval, and automatic failover.
Multiple executors, sharding, routing strategies, and cron expressions.
REST API and Java client for integration.
Other features bring the total to 35 distinct capabilities.
Architecture
The system is divided into two independent components:
Scheduling Center
Manages scheduling metadata, generates execution requests, and provides a web UI. It does not contain business logic, which improves availability and isolates scheduling performance from task execution.
Executor
Runs on each application node. It receives requests from the scheduling center, invokes the corresponding JobHandler, and returns execution results. Executors also handle termination and log queries.
Typical workflow:
Define a job in the scheduling center and bind it to a JobHandler implementation.
The scheduling center triggers the job according to its cron or trigger rule.
The executor pulls the request, executes the handler, and reports status.
Logs are stored and can be viewed through the UI or fetched via API.
Implementation Details
Job handlers are plain Java classes that implement the com.xxl.job.core.handler.IJobHandler interface. Example:
public class MyJobHandler extends IJobHandler {
@Override
public ReturnT<String> execute(String param) throws Exception {
// business logic here
return SUCCESS;
}
}Executors are configured via a properties file (e.g., xxl-job-executor.properties) that specifies the admin address, application name, and log path.
# xxl-job-executor.properties
xxl.job.admin.addresses=http://localhost:8080/xxl-job-admin
xxl.job.executor.appname=my-app
xxl.job.executor.ip=
xxl.job.executor.port=9999
xxl.job.accessToken=
xxl.job.executor.logpath=/data/applogs/xxl-job/jobhandler
xxl.job.executor.logretentiondays=30The platform supports failover: if an executor becomes unavailable, the scheduling center automatically re‑dispatches the job to another healthy executor.
Related Projects in the XXL Ecosystem
XXL‑JOB belongs to a broader open‑source suite that includes distributed configuration, service registration, message queue, RPC communication, API gateway, SSO, web crawling, Excel utilities, and code generation.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
ITPUB
Official ITPUB account sharing technical insights, community news, and exciting events.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
