Todos los productos
Search
Centro de documentos

SchedulerX:Connect a Spring Boot application to SchedulerX

Última actualización: Sep 18, 2026

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

  1. Inicie sesión en la consola de MSE SchedulerX y seleccione una región en la barra de navegación superior.

  2. En el panel de navegación izquierdo, haga clic en Application Management. Seleccione un Namespace y haga clic en Create Application.

  3. Introduzca la siguiente configuración y haga clic en Next.

    Importante

    Cree 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

    image

Configurar las notificaciones

  1. 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.

    image

  2. 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>
Importante

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.

image

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. 1

  • 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. 1

  • aliyunAccessKey y aliyunSecretKey: el identificador de AccessKey y el secreto de AccessKey de su cuenta de Alibaba Cloud.

Importante

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}
Nota

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

spring.schedulerx2.enabled

Habilita o deshabilita el starter de SchedulerX.

true

0.1.7

spring.schedulerx2.host

Especifique la dirección IP cuando la máquina tiene varias NIC o utiliza una VPN.

Auto-detected

0.1.7

spring.schedulerx2.port

Puerto en el que escucha el agente.

Random available port

0.1.7

spring.schedulerx2.blockAppStart

Bloquea el inicio de la aplicación si SchedulerX no se inicializa correctamente.

true

1.1.0

spring.schedulerx2.shareContainerPool

Permite que todos los trabajos del agente compartan un pool de hilos.

false

1.2.1.2

spring.schedulerx2.sharePoolSize

Tamaño del pool de hilos cuando se habilita el uso compartido.

64

1.2.1.2

spring.schedulerx2.label

Etiquetas para dirigir el tráfico a workers específicos durante un canary release o pruebas de estrés.

Ninguna

1.2.2.2

spring.schedulerx2.enableCgroupMetrics

Usa cgroup para recopilar métricas del agente. Habilítelo manualmente en entornos de Kubernetes.

false

1.2.2.2

spring.schedulerx2.cgroupPathPrefix

Ruta de cgroup en el contenedor.

/sys/fs/cgroup/cpu/

1.2.2.2

spring.schedulerx2.enableHeartbeatLog

Registra los datos de heartbeat en ${user.home}/logs/schedulerx/heartbeat.log.

true

1.2.4

spring.schedulerx2.mapMasterStatusCheckInterval

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.

3000

1.2.5.2

spring.schedulerx2.enableSecondDelayCycleIntervalMs

Interpreta los intervalos de los trabajos con granularidad de segundos en milisegundos en lugar de segundos.

false

1.2.5.2

spring.schedulerx2.broadcastMasterExecEnable

Exige que el nodo principal ejecute los trabajos de broadcast.

true

1.8.13

spring.schedulerx2.broadcastDispatchRetryTimes

Número máximo de reintentos tras un error de dispatch de broadcast. El intervalo de reintento es fijo de 2 segundos.

3

1.8.13

spring.schedulerx2.enableSecondDelayStandaloneDispatch

Habilita el dispatch de trabajos independientes con granularidad de segundos.

false

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
    }
}
  • @Component registra la clase como un bean de Spring para que SchedulerX pueda detectarla.

  • Extienda JavaProcessor y sobrescriba process para definir la lógica del trabajo.

  • Devuelva new ProcessResult(true) si la ejecución es exitosa o new ProcessResult(false) si presenta errores.

Paso 5: Comprobar la conexión

  1. Inicie su aplicación de Spring Boot.

  2. Inicie sesión en la consola de MSE SchedulerX. En el panel de navegación izquierdo, haga clic en Applications.

  3. Busque su aplicación y haga clic en View instances en la columna Operation.

    View instances

  4. 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 endpoint con Endpoints.

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 blockAppStart=true (valor predeterminado)

Establezca spring.schedulerx2.blockAppStart=false para que la aplicación inicie sin SchedulerX, o bien resuelva primero el problema de conexión.

Consulte también