Los términos de SchedulerX se organizan a continuación según su función en la arquitectura del sistema.
Organización de recursos
Namespace
SchedulerX utiliza namespaces para aislar recursos. Cada namespace es lógicamente independiente, lo que permite separar entornos como desarrollo, pruebas y producción, y gestionar todos los namespaces bajo una sola cuenta de Alibaba Cloud.
AppGroup
Un AppGroup (grupo de aplicaciones) corresponde a una aplicación y se asocia con workers. Los AppGroups aíslan los jobs que pertenecen a distintas aplicaciones. Por ejemplo, coloque sus jobs de procesamiento de pedidos y de reportes en AppGroups separados para mantenerlos independientes.
Unidades de programación
SchedulerX cuenta con tres niveles de unidades de programación: jobs, instancias de job y tasks.
Job
└── Job instance (one per trigger)
└── Task (sub-unit for parallel execution)
Job
Un job es la unidad programable más pequeña en SchedulerX.
Instancia de job
Cada vez que el sistema activa un job, genera una instancia de job. Un solo job puede producir muchas instancias de job a lo largo del tiempo: una por cada evento de activación.
Task
Una task es una subunidad que se crea cuando el sistema invoca el método map en modo de computación paralela, cuadrícula de memoria o computación en cuadrícula.
Orquestación
Flujo de trabajo
Un flujo de trabajo orquesta varios jobs en un grafo acíclico dirigido (DAG). Cada nodo del flujo de trabajo representa un job, y las aristas definen el orden de ejecución y las dependencias.
DAG
DAG significa grafo acíclico dirigido: un grafo de aristas dirigidas sin ciclos. En SchedulerX, cada flujo de trabajo se representa como un DAG, lo que garantiza que las dependencias de los jobs se resuelvan en un orden predecible y no circular.
Conceptos de tiempo
Hora programada
La hora programada es el momento en que se espera que se ejecute una instancia de job. El JobProcessor puede obtener la hora programada mediante context.getScheduleTime().
Datos de series temporales
SchedulerX admite el procesamiento de datos de series temporales al desacoplar la hora de activación del periodo de datos que procesa un job. Al crear un job, establezca un desplazamiento de tiempo para que el job procese datos de un momento distinto al de su ejecución.
Ejemplo: Un job se activa a las 00:30 todos los días, pero necesita procesar datos actualizados a las 23:30 del día anterior. Establezca el desplazamiento de tiempo en 1 hora. El job se sigue activando a las 00:30, pero context.getDataTime() devuelve las 23:30 del día anterior, lo que permite que su código obtenga la ventana de datos correcta.