O SchedulerX é um service de agendamento distribuído de jobs do Microservices Engine (MSE). Ele utiliza uma arquitetura servidor-agente: o servidor do SchedulerX gerencia o agendamento e a coordenação, enquanto um agente incorporado à sua aplicação Spring Boot execute os jobs. Após conectar sua aplicação, você pode definir, agendar e monitorar jobs pelo console do SchedulerX.
Pré-requisitos
Antes de começar, certifique-se de que você possui:
Um projeto Spring Boot 2.x ou 3.x
(Opcional) Um namespace para isolamento de recursos — consulte a seção "Criar um namespace" de Namespace management
Etapa 1: Crie uma aplicação SchedulerX
Definir configurações básicas
Faça login no console do MSE SchedulerX e selecione uma região na barra de navegação superior.
No painel de navegação à esquerda, clique em Application Management. Selecione um Namespace e clique em Create Application.
-
Insira as configurações a seguir e clique em Next.
ImportanteCrie os recursos na região e no namespace corretos. Certifique-se de que as informações dos recursos sejam válidas.
Configuração
Descrição
Padrão
Application Name
Nome descritivo para a aplicação.
Nenhum
Application ID
GroupID para acesso do agente. Deve ser exclusivo dentro do namespace. Pode ser igual ao Application Name.
Nenhum
Application Type
Regular App — não implantado no Kubernetes ou não requer jobs Kubernetes. k8s App — implantado no Kubernetes e requer jobs Kubernetes.
Regular App
Edition
Selecione uma edição de acordo com suas necessidades.
Professional Edition
Simple Log Service
Ative para visualizar logs de agendamento no console. Requer configuração de Log4j ou Logback.
Off
load5
Média máxima de carga nos últimos 5 minutos. Não pode exceder o número de núcleos de CPU na máquina do cliente.
0
Memory Usage
Quando o uso médio de memória nos últimos 5 minutos excede esse limiar, o worker é marcado como ocupado.
90%
Disk Usage
Quando o uso de disco excede esse limiar, a máquina do cliente é marcada como ocupada.
95%
Trigger Busy Machine
Continua disparando jobs mesmo quando a máquina está ocupada.
On
Configuração
Descrição
Padrão
Maximum Number Of Jobs
Número máximo de jobs suportados em um grupo.
1000
Automatic Scale-out
Ative para habilitar o dimensionamento automático. Requer Global Job Count.
Off
Traffic Throttling
Ative para limitar o tráfego. Requer Task Instance Concurrency.
Off
Calendar
Agenda com base em Financial Day (dia de negociação) ou Workday (dia útil).
0

Configure notificações
-
Na página Notification Configuration, selecione um Notification Channel e defina os Contacts. Adicione contatos individualmente ou use um grupo de contatos. Para crie um grupo de contatos, consulte Create a notification contact or notification contact group.
Configuração
Descrição
Notification Channel
Text Message, Email, Webhook ou Phone.
Email
Endereço de e-mail do contato.
Webhook
URL do webhook para WeCom, Lark ou DingTalk. Separe múltiplas URLs com vírgulas (,). Para o DingTalk, adicione a palavra-chave "SchedulerX" (diferencia maiúsculas de minúsculas) na configuração do robô. Para detalhes sobre a configuração de webhooks, consulte Webhook configuration description. Para saber como obter uma URL de webhook, consulte DingTalk Developer Documentation, WeCom Developer Documentation e Lark Developer Documentation.
Mobile Phone Number
Número de telefone do contato.

Atualize a página e confirme que sua aplicação aparece na região e no namespace selecionados.
Etapa 2: Adicionar a dependência do SchedulerX
Adicione a dependência schedulerx2-spring-boot-starter ao arquivo pom.xml do seu projeto 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>
Substitua a versão pela versão mais recente do agente. Para consultar o histórico de versões, acesse Agent release notes.
Se o seu projeto utiliza Logback, exclua as dependências do Log4j incluídas por padrão:
<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>
Etapa 3: Configure os parâmetros de conexão
Adicione as seguintes propriedades ao arquivo 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}
Origem dos parâmetros:
Faça login no console do SchedulerX. No painel de navegação à esquerda, clique em Applications. Localize a aplicação desejada e clique em AccessConfig na coluna Operation. No painel AccessConfig, selecione Spring Boot na lista suspensa.

Descrição dos parâmetros:
endpoint: endpoint do SchedulerxWorker. O valor deve corresponder ao endpoint da região em que a aplicação está implantada. Para mais informações, consulte Endpoints.
namespace: ID do namespace ao qual a aplicação pertence. Consulte o ID do namespace na página Namespaces do console do SchedulerX.

groupId e appKey: ID e chave da aplicação. Consulte os valores na página Applications do console do SchedulerX.

aliyunAccessKey e aliyunSecretKey: AccessKey ID e AccessKey secret da sua conta Alibaba Cloud.
O SchedulerX e o agente devem estar na mesma região. Uma incompatibilidade de região causa falha na conexão. Se a aplicação é executada fora da Alibaba Cloud (on-premises ou outro provedor de cloud), ative o acesso pela Internet e crie uma aplicação SchedulerX na região de Internet. Consulte Connect to SchedulerX over the Internet from an on-premises environment.
Se a aplicação utiliza YAML, adicione essas configurações ao arquivo application.yml:
spring:
schedulerx2:
endpoint: ${endpoint}
namespace: ${namespace}
groupId: ${groupId}
appKey: ${appKey}
Para gerencie múltiplas aplicações a partir de um único cliente, separe os IDs das aplicações com vírgulas: spring.schedulerx2.groupId=animals.dog,animals.cat. Cada aplicação possui isolamento para gerenciamento de permissões e não requer um worker separado.
Parâmetros opcionais
Os parâmetros a seguir oferecem suporte a casos de uso avançados:
|
Parâmetro |
Descrição |
Padrão |
Desde |
|
|
Ative ou desativa o starter do SchedulerX. |
|
0.1.7 |
|
|
Especifique o endereço IP quando a máquina possui múltiplas placas de rede ou utiliza VPN. |
Detectado automaticamente |
0.1.7 |
|
|
Porta na qual o agente escuta. |
Porta disponível aleatória |
0.1.7 |
|
|
Bloqueia a inicialização da aplicação caso o SchedulerX falhe ao inicializar. |
|
1.1.0 |
|
|
Permite que todos os jobs do agente compartilhem um único pool de threads. |
|
1.2.1.2 |
|
|
Tamanho do pool de threads quando o compartilhamento está ativado. |
|
1.2.1.2 |
|
|
Rótulos para direcionar workers específicos durante canary release ou testes de carga. |
Nenhum |
1.2.2.2 |
|
|
Usa cgroup para coletar métricas do agente. Ative manualmente em ambientes Kubernetes. |
|
1.2.2.2 |
|
|
Caminho do cgroup no contêiner. |
|
1.2.2.2 |
|
|
Registra dados de heartbeat em |
|
1.2.4 |
|
|
Intervalo (ms) para verifique a conclusão de tarefas no modelo Map. Valores menores aumentam a frequência de agendamento para jobs com granularidade de segundos. |
|
1.2.5.2 |
|
|
Interpreta intervalos de jobs com granularidade de segundos em milissegundos em vez de segundos. |
|
1.2.5.2 |
|
|
Exige que o nó primário execute jobs de broadcast. |
|
1.8.13 |
|
|
Número máximo de tentativas após falha no despacho de broadcast. O intervalo entre tentativas é fixo em 2 segundos. |
|
1.8.13 |
|
|
Ative o despacho de jobs standalone com granularidade de segundos. |
|
1.8.13 |
Etapa 4: Crie um processador de job
Crie uma classe que estenda JavaProcessor para definir a lógica do job. O exemplo a seguir imprime uma mensagem a cada execução:
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 a classe como um bean do Spring para que o SchedulerX possa descobri-la.Estenda
JavaProcessore sobrescrevaprocesspara definir a lógica do job.Retorne
new ProcessResult(true)para sucesso ounew ProcessResult(false)para falha.
Etapa 5: Verifique a conexão
Inicie sua aplicação Spring Boot.
Faça login no console do MSE SchedulerX. No painel de navegação à esquerda, clique em Applications.
-
Localize sua aplicação e clique em View instances na coluna Operation.

-
Verifique a coluna Total number of instances:
0: a conexão falhou. Verifique os parâmetros de configuração (região, endpoint, namespace e GroupID) e confirme a conectividade de rede.
Maior que 0: a conexão foi bem-sucedida.
Próximos passos
Após verifique a conexão, crie um job no console do SchedulerX para acionar seu processador de job. Consulte a seção "Crie um job" de Job management.
Solução de problemas
|
Sintoma |
Causa provável |
Solução |
|
O agente não consegue conectar (0 instâncias) |
Incompatibilidade de região entre o SchedulerX e o agente |
Confirme que ambos usam a mesma região. Verifique o valor de |
|
O agente não consegue conectar (0 instâncias) |
A aplicação é executada fora da Alibaba Cloud sem um endpoint de Internet |
Ative o acesso pela Internet e crie uma aplicação SchedulerX na região de Internet. Consulte Connect over the Internet. |
|
O agente não consegue conectar (0 instâncias) |
GroupID ou AppKey incorreto |
Abra Applications > AccessConfig no console e confirme os valores. |
|
Inicialização da aplicação bloqueada |
O SchedulerX falhou ao inicializar com |
Defina |
Consulte também
Connect an agent to SchedulerX — outros métodos de conexão (não Spring Boot)