Enterprise applications rely on scheduled tasks for data processing, report generation, file handling, and other recurring operations. As these tasks grow in volume and complexity, managing them with custom schedulers or standalone cron jobs becomes error-prone and hard to scale.
Distributed Task Scheduling, part of Microservices Engine (MSE), provides a fully managed platform for creating, running, and monitoring scheduled tasks across distributed environments. Two editions are available: SchedulerX, a distributed task scheduling platform that uses a proprietary programming framework and communication protocol, and XXL-JOB, which uses SchedulerX as its kernel and is compatible with the open-source communication protocol to host XXL-JOB clients for non-intrusive connections.
How it works
Distributed Task Scheduling follows a three-part model:
-
Task definition -- Define what runs: a Java method, a Go function, a Shell script, an HTTP endpoint, or a Kubernetes Job.
-
Scheduling -- Define when it runs: one-time, recurring on a cron schedule, delayed, or as part of a multi-step workflow.
-
Execution and monitoring -- The platform dispatches the task to connected workers, tracks execution status, and sends alerts on failure.
Both editions handle scheduling and execution on the server side. Your application only needs to register a lightweight client (or, for HTTP serverless tasks, no client at all).
Choose an edition
Two editions serve different migration paths and operational preferences.
| SchedulerX | XXL-JOB | |
|---|---|---|
| Connection | Requires replacing the client SDK | No code changes -- pass connection config through the -D parameter at deploy time |
| Billing | Serverless -- based on task count and scheduling frequency | Instance-based -- based on requested resource specifications |
| Public network | Supported | Not supported |
| Languages | Supports non-Java/Go applications; also supports script tasks, HTTP tasks, and K8s tasks | Java and Go only |
When to use SchedulerX:
-
Non-Java/Go workloads (scripts, HTTP callbacks, Kubernetes jobs)
-
Applications deployed on the public network
-
Pay-per-use billing based on task count and scheduling frequency
When to use XXL-JOB:
-
Existing XXL-JOB applications that need a zero-code-change migration to the cloud
-
Teams that prefer fixed-capacity, instance-based billing
-
Java or Go applications that do not require public network access
Key benefits
Automatic failover and recovery. Built on a high-availability architecture with multi-backup task execution, validated through years of Alibaba Group Double 11 events and disaster recovery drills. Tasks automatically fail over and recover when nodes go down.
Second-level scheduling precision. Supports scheduling down to the second. Lightweight distributed computing enables near-real-time big data batch processing.
Fully managed with zero infrastructure overhead. No servers to provision or maintain. Connect your application and start scheduling.
Drop-in XXL-JOB compatibility. 100% compatible with all versions of open-source XXL-JOB. A built-in migration tool imports self-hosted XXL-JOB tasks in one click, with no code changes required.
Multi-tenant security and access control. Multilayer security protection, multi-tenant data isolation, and permission control safeguard task data and execution environments. Based on Alibaba Cloud's multilayer security protection, it effectively prevents malicious attacks.
Beyond open source. Powered by the SchedulerX engine, both editions extend the open-source XXL-JOB feature set with timed scheduling, workflow orchestration, throttling control, and O&M operations.
Features
You can use the Distributed Task Scheduling platform to manage scheduled tasks, query task execution records, and view operational logs.
SchedulerX
| Category | Capabilities |
|---|---|
| Task management | Scheduled, delayed, and periodic tasks |
| Workflow orchestration | Visual editor for defining task dependencies and execution order |
| Distributed computing | Built-in programming model for parallelizing big data batch processing |
| Monitoring and alerts | Execution metrics, run history, and configurable alert channels |
Supported task types:
| Task type | Description |
|---|---|
| Java | Run a method in a Java application through the Java SDK. Learn more |
| Go | Run a task in a Go application through the Go SDK. Learn more |
| Spring | Host Spring @Scheduled tasks without modifying code. Learn more |
| XXL-JOB | Host XXL-JOB tasks without modifying code. Learn more |
| Script | Write and run Shell or Python scripts online. Learn more |
| HTTP | Two modes: (1) *HTTP serverless* -- trigger tasks by exposing a public endpoint, no client needed; (2) *HTTP agent* -- connect a schedulerxAgent inside a VPC for scheduling through internal endpoints. Learn more |
| K8s | Run K8s script tasks, or schedule native Kubernetes Job and CronJob resources. Learn more |
| DataWorks | Include Alibaba Cloud DataWorks tasks in a workflow alongside other task types. Learn more |
XXL-JOB
| Category | Capabilities |
|---|---|
| Task scheduling | Create, manage, and schedule recurring tasks |
| Throttling control | Limit the maximum concurrent instances per task and control how many tasks run concurrently under a single application |
| Cloud migration | One-click import of all tasks from a self-hosted XXL-JOB instance |
| Monitoring and alerts | Execution metrics, run history, and configurable alert channels |
Get started
| Goal | Guide |
|---|---|
| Connect a client to SchedulerX | Quick client connection |
| Run a Shell script on a schedule | Scheduled Shell script task |
| Try XXL-JOB in 10 minutes | XXL-JOB quick start |
| Build a Java or Go app with XXL-JOB | Build and connect a Java/Go application |