Todos os produtos
Search
Central de documentação

Enterprise Distributed Application Service:Implementar agendamento de tarefas

Última atualização: Jun 26, 2026

O SchedulerX permite executar tarefas agendadas em aplicações Spring Cloud implantadas no Enterprise Distributed Application Service (EDAS). Este guia orienta você na criação de uma tarefa do tipo Simple Job Single-instance Edition, no teste local e na implantação no EDAS.

O SchedulerX é a plataforma distribuída de agendamento de tarefas da Alibaba Cloud. Ele oferece:

  • Precisão inferior a um minuto: Agende tarefas com granularidade de segundos usando expressões cron.

  • Alta disponibilidade: Failover integrado e execução confiável.

  • Modelos de execução distribuída: Execute cargas de trabalho paralelas com modelos como MapReduce.

Pré-requisitos

Antes de começar, verifique se você possui:

Etapa 1: Crie o projeto Maven

Crie um projeto Maven chamado scx-example.

Adicione as seguintes dependências ao seu arquivo pom.xml. Esta configuração utiliza Spring Boot 2.1.4.RELEASE com Spring Cloud Finchley.SR1.

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.4.RELEASE</version>
    <relativePath/>
</parent>

<dependencies>
    <!-- SchedulerX Spring Boot starter -->
    <dependency>
        <groupId>com.aliyun.schedulerx</groupId>
        <artifactId>schedulerx2-spring-boot-starter</artifactId>
        <version>${schedulerx2.version}</version>
        <!-- Exclude log4j if you use Logback -->
        <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>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Finchley.SR1</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
O Spring Boot 1.x atingiu o fim do suporte. Se você ainda usa Spring Boot 1.5.x com Spring Cloud Edgware, defina a versão do Spring Cloud Alibaba como 1.5.1.RELEASE.

Etapa 2: Crie o ponto de entrada da aplicação

Crie uma classe de inicialização chamada ScxApplication:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class ScxApplication {
    public static void main(String[] args) {
        SpringApplication.run(ScxApplication.class, args);
    }
}

Etapa 3: Crie um serviço de teste

Crie uma classe de serviço gerenciada pelo Spring chamada TestService. Esta classe valida se a injeção de Inversão de Controle (IoC) do Spring funciona corretamente na classe da tarefa.

import org.springframework.stereotype.Service;

@Service
public class TestService {

    public void test() {
        System.out.println("---------IOC Success--------");
    }
}

Etapa 4: Implementar o processador da tarefa

Crie uma classe de tarefa chamada SimpleTask que implemente ScxSimpleJobProcessor. Esta classe define a lógica executada sempre que a tarefa é acionada.

import com.alibaba.edas.schedulerx.ProcessResult;
import com.alibaba.schedulerx.worker.domain.JobContext;
import com.alibaba.schedulerx.worker.processor.JavaProcessor;
import org.springframework.beans.factory.annotation.Autowired;

public class SimpleTask implements ScxSimpleJobProcessor {

    @Autowired
    private TestService testService;

    @Override
    public ProcessResult process(JobContext context) {
        System.out.println("-----------Hello world---------------");
        testService.test();
        return new ProcessResult(true);
    }
}

O método process retorna ProcessResult(true) para indicar execução bem-sucedida. O Spring injeta automaticamente o TestService por meio da anotação @Autowired.

Etapa 5: Crie uma tarefa agendada no console do EDAS

  1. Faça login no console do EDASconsole do EDAS.

  2. Na região test, crie um grupo de tarefas agendadas e anote o ID do grupo.

  3. No grupo de tarefas, crie uma tarefa com os seguintes parâmetros:

    Parâmetro

    Valor

    Descrição

    Application ID

    O ID do grupo da etapa anterior

    Vincula a tarefa ao seu grupo de tarefas

    Processor class name

    SimpleTask

    Nome completo da classe que implementa a interface da tarefa

    Task type

    Stand-alone operation

    Executa a tarefa em uma única instância

    cron expression

    0 * * * * ?

    Aciona a tarefa uma vez por minuto

    Description

    (Deixe em branco)

    Descrição opcional da tarefa

    Task parameters

    (Deixe em branco)

    Parâmetros de tempo de execução opcionais

Etapa 6: Configure a aplicação

Em src/main/resources, crie o arquivo application.properties com as seguintes configurações:

server.port=18033

# SchedulerX connection settings
# Replace the placeholder values with your actual namespace and group credentials.
spring.schedulerx2.endpoint=acm.aliyun.com
spring.schedulerx2.namespace=<your-namespace-id>
spring.schedulerx2.groupId=<your-group-id>
spring.schedulerx2.appKey=<your-app-key>

Substitua os seguintes espaços reservados pelos seus valores reais:

Espaço reservado

Descrição

Exemplo

<your-namespace-id>

ID do namespace obtido no console do EDAS

d1ce9d38-ab9b-444e-ab2a-4*****

<your-group-id>

ID do grupo de tarefas agendadas

Obtido na Etapa 5

<your-app-key>

Chave da aplicação para autenticação

5pHlwaWpluJGd39******

A região test usa cn-test como regionName. Durante testes locais, o tráfego passa pela Internet sem restrições de permissão.

Etapa 7: Execute e verifique localmente

Execute o método main em ScxApplication para iniciar o serviço.

Verifique a saída no console da sua IDE. Quando a tarefa for executada com sucesso, as seguintes mensagens serão impressas uma vez por minuto:

-----------Hello world---------------
---------IOC Success--------

Implantar no EDAS

Após a verificação local, implante a aplicação no EDAS sem modificar nenhum código ou configuração. O SchedulerX suporta migração transparente de um ambiente de desenvolvimento para o EDAS.

Escolha um destino de implantação com base na sua infraestrutura:

Destino de implantação

Guia

Cluster Kubernetes

Criar e implantar aplicações em clusters Kubernetes

Cluster Elastic Compute Service (ECS)

Criar e implantar aplicações em clusters ECS

Após a implantação, gerencie e monitore suas tarefas agendadas diretamente no console do EDAS.

Implantar em regiões de produção

As etapas acima utilizam a região test para desenvolvimento e verificação. Para implantar em uma região de produção, como China (Hangzhou), adicione suas credenciais AccessKey ao arquivo application.properties:

spring.cloud.alicloud.access-key=<your-access-key-id>
spring.cloud.alicloud.secret-key=<your-access-key-secret>

Obtenha seu AccessKey ID e AccessKey secret na página Security Management.

Importante

Armazene as credenciais AccessKey com segurança. Evite confirmá-las no controle de versão. Use variáveis de ambiente ou um gerenciador de segredos em ambientes de produção.

Próximos passos

Depois de implantar a aplicação no EDAS, explore outros recursos do SchedulerX:

  • Configure outros tipos de tarefa além da Simple Job Single-instance Edition.

  • Defina modelos de execução distribuída, como MapReduce, para executar cargas de trabalho paralelas em várias instâncias.