SchedulerX es un servicio de programación distribuida de trabajos en Microservices Engine (MSE). Utiliza una arquitectura de servidor y agente: el servidor de SchedulerX se encarga de la programación y la coordinación, mientras que un agente integrado en su aplicación de Spring Boot ejecuta los trabajos. Una vez conectada la aplicación, puede definir, programar y supervisar los trabajos desde la consola de SchedulerX.
Requisitos previos
Antes de empezar, asegúrese de contar con lo siguiente:
Un proyecto de Spring Boot 2.x o 3.x
(Opcional) Un namespace para aislar recursos; consulte la sección "Create a namespace" de Namespace management
Paso 1: Crear una aplicación de SchedulerX
Configurar los ajustes básicos
Inicie sesión en la consola de MSE SchedulerX y seleccione una región en la barra de navegación superior.
En el panel de navegación izquierdo, haga clic en Application Management. Seleccione un Namespace y haga clic en Create Application.
-
Introduzca la siguiente configuración y haga clic en Next.
ImportanteCree los recursos en la región y el namespace correctos. Compruebe que la información del recurso sea válida.
Setting
Description
Default
Application Name
Nombre descriptivo de la aplicación.
Ninguna
Application ID
El GroupID para el acceso del agente. Debe ser único dentro del namespace. Puede coincidir con Application Name.
Ninguna
Application Type
Regular App: no se despliega en Kubernetes ni requiere trabajos de Kubernetes. k8s App: se despliega en Kubernetes y requiere trabajos de Kubernetes.
Regular App
Edition
Seleccione una edición según sus necesidades.
Professional Edition
Simple Log Service
Habilítelo para consultar los registros de programación en la consola. Requiere una configuración de Log4j o Logback.
Off
load5
Promedio de carga máximo de 5 minutos. No puede superar la cantidad de núcleos de CPU de la máquina cliente.
0
Memory Usage
Si el uso promedio de memoria de los últimos 5 minutos supera este umbral, el worker se marca como ocupado.
90%
Disk Usage
Si el uso de disco supera este umbral, la máquina cliente se marca como ocupada.
95%
Trigger Busy Machine
Continúa activando trabajos cuando la máquina está ocupada.
On
Setting
Description
Default
Maximum Number Of Jobs
Cantidad máxima de trabajos compatibles en un grupo.
1000
Automatic Scale-out
Habilítelo para escalar automáticamente. Requiere Global Job Count.
Off
Traffic Throttling
Habilítelo para limitar el tráfico. Requiere Task Instance Concurrency.
Off
Calendar
Programe mediante Financial Day (día de cotización) o Workday (día hábil).
0

Configurar las notificaciones
-
En la página Notification Configuration, seleccione un Notification Channel y establezca los Contacts. Agregue los contactos de forma individual o utilice un grupo de contactos. Para crear un grupo de contactos, consulte Crear un contacto de notificación o un grupo de contactos de notificación.
Setting
Description
Notification Channel
Text Message, Email, Webhook o Phone.
Email
Dirección de correo electrónico del contacto.
Webhook
URL del webhook para WeCom, Lark o DingTalk. Separe varias URL con comas (,). En DingTalk, agregue la palabra clave "SchedulerX" (distingue entre mayúsculas y minúsculas) a la configuración del robot. Para más detalles sobre la configuración del webhook, consulte Descripción de la configuración del webhook. Para obtener información sobre cómo conseguir una URL de webhook, consulte la documentación para desarrolladores de DingTalk, la documentación para desarrolladores de WeCom y la documentación para desarrolladores de Lark.
Mobile Phone Number
Número de celular del contacto.

Actualice la página y confirme que su aplicación aparece en la región y el namespace seleccionados.
Paso 2: Agregar la dependencia de SchedulerX
Agregue la dependencia schedulerx2-spring-boot-starter al archivo pom.xml de su proyecto de Spring Boot:
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-spring-boot-starter</artifactId>
<version>1.11.5</version> <!-- Replace with the latest version -->
</dependency>
Reemplace la versión por la versión más reciente del agente. Para consultar el historial de versiones, vea Agent release notes.
Si su proyecto utiliza Logback, excluya las dependencias de Log4j incluidas:
<dependency>
<groupId>com.aliyun.schedulerx</groupId>
<artifactId>schedulerx2-spring-boot-starter</artifactId>
<version>1.11.5</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
Paso 3: Configurar los parámetros de conexión
Agregue las siguientes propiedades a application.properties:
# Required: SchedulerX connection settings
spring.schedulerx2.endpoint=${endpoint}
spring.schedulerx2.namespace=${namespace}
spring.schedulerx2.groupId=${groupId}
# The appKey parameter is supported only in versions 1.2.1 and later.
spring.schedulerx2.appKey=${appKey}
# If you do not use an appKey, you can use an Alibaba Cloud AccessKey and SecretKey, or an STS token.
#spring.schedulerx2.aliyunAccessKey=${aliyunAccessKey}
#spring.schedulerx2.aliyunSecretKey=${aliyunSecretKey}
#spring.schedulerx2.stsToken=${aliyunStsToken}
Orígenes de los parámetros:
Inicie sesión en la consola de SchedulerX. En el panel de navegación izquierdo, haga clic en Applications. Busque la aplicación que desea gestionar y haga clic en AccessConfig en la columna Operation. En el panel AccessConfig, seleccione Spring Boot en el menú desplegable.

Descripción de los parámetros:
endpoint: el endpoint de SchedulerxWorker. El valor debe coincidir con el endpoint de la región donde se despliega su aplicación. Para más información, consulte Endpoints.
namespace: el identificador del namespace al que pertenece la aplicación. Puede consultar el identificador del namespace en la página Namespaces de la consola de SchedulerX.

groupId y appKey: el identificador y la clave de la aplicación. Puede consultar estos valores en la página Applications de la consola de SchedulerX.

aliyunAccessKey y aliyunSecretKey: el identificador de AccessKey y el secreto de AccessKey de su cuenta de Alibaba Cloud.
SchedulerX y el agente deben estar en la misma región. Si las regiones no coinciden, la conexión falla. Si la aplicación se ejecuta fuera de Alibaba Cloud (en sus instalaciones o en otro proveedor de nube), habilite el acceso a Internet y cree una aplicación de SchedulerX en la región de Internet. Consulte Connect to SchedulerX over the Internet from an on-premises environment.
Si la aplicación utiliza YAML, agregue esta configuración a application.yml en su lugar:
spring:
schedulerx2:
endpoint: ${endpoint}
namespace: ${namespace}
groupId: ${groupId}
appKey: ${appKey}
Para gestionar varias aplicaciones desde un solo cliente, separe los identificadores de aplicación con comas: spring.schedulerx2.groupId=animals.dog,animals.cat. Cada aplicación queda aislada para la gestión de permisos y no requiere un worker independiente.
Parámetros opcionales
Los siguientes parámetros admiten casos de uso avanzados:
|
Parameter |
Description |
Default |
Since |
|
|
Habilita o deshabilita el starter de SchedulerX. |
|
0.1.7 |
|
|
Especifique la dirección IP cuando la máquina tiene varias NIC o utiliza una VPN. |
Auto-detected |
0.1.7 |
|
|
Puerto en el que escucha el agente. |
Random available port |
0.1.7 |
|
|
Bloquea el inicio de la aplicación si SchedulerX no se inicializa correctamente. |
|
1.1.0 |
|
|
Permite que todos los trabajos del agente compartan un pool de hilos. |
|
1.2.1.2 |
|
|
Tamaño del pool de hilos cuando se habilita el uso compartido. |
|
1.2.1.2 |
|
|
Etiquetas para dirigir el tráfico a workers específicos durante un canary release o pruebas de estrés. |
Ninguna |
1.2.2.2 |
|
|
Usa cgroup para recopilar métricas del agente. Habilítelo manualmente en entornos de Kubernetes. |
|
1.2.2.2 |
|
|
Ruta de cgroup en el contenedor. |
|
1.2.2.2 |
|
|
Registra los datos de heartbeat en |
|
1.2.4 |
|
|
Intervalo (ms) para comprobar la finalización de tareas en el modelo Map. Los valores más bajos aumentan la frecuencia de programación de los trabajos con granularidad de segundos. |
|
1.2.5.2 |
|
|
Interpreta los intervalos de los trabajos con granularidad de segundos en milisegundos en lugar de segundos. |
|
1.2.5.2 |
|
|
Exige que el nodo principal ejecute los trabajos de broadcast. |
|
1.8.13 |
|
|
Número máximo de reintentos tras un error de dispatch de broadcast. El intervalo de reintento es fijo de 2 segundos. |
|
1.8.13 |
|
|
Habilita el dispatch de trabajos independientes con granularidad de segundos. |
|
1.8.13 |
Paso 4: Crear un procesador de trabajos
Cree una clase que extienda JavaProcessor para definir la lógica del trabajo. El siguiente ejemplo imprime un mensaje en cada ejecución:
package com.aliyun.schedulerx.test.job;
import com.alibaba.schedulerx.worker.domain.JobContext;
import com.alibaba.schedulerx.worker.processor.JavaProcessor;
import com.alibaba.schedulerx.worker.processor.ProcessResult;
import org.springframework.stereotype.Component;
@Component
public class MyHelloJob extends JavaProcessor {
@Override
public ProcessResult process(JobContext context) throws Exception {
System.out.println("hello schedulerx2.0");
return new ProcessResult(true); // Return true to indicate success
}
}
@Componentregistra la clase como un bean de Spring para que SchedulerX pueda detectarla.Extienda
JavaProcessory sobrescribaprocesspara definir la lógica del trabajo.Devuelva
new ProcessResult(true)si la ejecución es exitosa onew ProcessResult(false)si presenta errores.
Paso 5: Comprobar la conexión
Inicie su aplicación de Spring Boot.
Inicie sesión en la consola de MSE SchedulerX. En el panel de navegación izquierdo, haga clic en Applications.
-
Busque su aplicación y haga clic en View instances en la columna Operation.

-
Revise la columna Total number of instances:
0: la conexión falló. Revise los parámetros de configuración (región, endpoint, namespace y GroupID) y compruebe la conectividad de red.
Mayor que 0: la conexión fue exitosa.
Pasos siguientes
Una vez comprobada la conexión, cree un trabajo en la consola de SchedulerX para activar su procesador de trabajos. Consulte la sección "Create a job" de Job management.
Solución de problemas
|
Symptom |
Possible cause |
Solution |
|
El agente no se conecta (0 instancias) |
La región de SchedulerX y la del agente no coinciden |
Confirme que ambos usan la misma región. Compare el valor de |
|
El agente no se conecta (0 instancias) |
La aplicación se ejecuta fuera de Alibaba Cloud sin un endpoint de Internet |
Habilite el acceso a Internet y cree una aplicación de SchedulerX en la región de Internet. Consulte Connect over the Internet. |
|
El agente no se conecta (0 instancias) |
GroupID o AppKey incorrectos |
Abra Applications > AccessConfig en la consola y confirme los valores. |
|
Se bloquea el inicio de la aplicación |
SchedulerX no se inicializó con |
Establezca |
Consulte también
Connect an agent to SchedulerX: otros métodos de conexión (distintos de Spring Boot)