All Products
Search
Document Center

SchedulerX:Terms

Last Updated:Mar 11, 2026

SchedulerX terms are organized below by their role in the system architecture.

Resource organization

Namespace

SchedulerX uses namespaces to isolate resources. Each namespace is logically independent, so you can separate environments such as development, staging, and production while managing all namespaces under a single Alibaba Cloud account.

AppGroup

An AppGroup (application group) maps to an application and is associated with workers. AppGroups isolate jobs that belong to different applications. For example, place your order-processing jobs and reporting jobs in separate AppGroups to keep them independent.

Scheduling units

SchedulerX has three levels of scheduling units: jobs, job instances, and tasks.

Job
 └── Job instance (one per trigger)
      └── Task (sub-unit for parallel execution)

Job

A job is the smallest schedulable unit in SchedulerX.

Job instance

Each time the system triggers a job, it generates a job instance. A single job can produce many job instances over time -- one for each trigger event.

Task

A task is a sub-unit created when the system calls the map method in parallel computing, memory grid, or grid computing mode.

Orchestration

Workflow

A workflow orchestrates multiple jobs into a Directed Acyclic Graph (DAG). Each node in the workflow represents a job, and the edges define execution order and dependencies.

DAG

DAG stands for Directed Acyclic Graph -- a graph of directed edges with no cycles. In SchedulerX, every workflow is represented as a DAG, ensuring that job dependencies are resolved in a predictable, non-circular order.

Time concepts

Scheduled time

The scheduled time is when a job instance is expected to run. The JobProcessor can retrieve the scheduled time with context.getScheduleTime().

Time-series data

SchedulerX supports processing time-series data by decoupling the trigger time from the data period a job processes. When you create a job, set a time offset so the job processes data from a different point in time than when it runs.

Example: A job triggers at 00:30 every day, but you need it to process data updated at 23:30 the previous day. Set the time offset to 1 hour. The job still triggers at 00:30, but context.getDataTime() returns 23:30 of the previous day, letting your code fetch the correct data window.