Quando o SchedulerX é implantado em uma região pública, qualquer máquina ou container com acesso à rede pública pode se conectar a ele, incluindo máquinas fora da Alibaba Cloud e ambientes locais de desenvolvimento. Use esse recurso para testar e desenvolver tarefas agendadas localmente.
Pré-requisitos
-
Nota
Ao criar a aplicação, selecione a região Internet.
Procedimento
-
Adicione a dependência do SchedulerxWorker ao arquivo pom.xml da sua aplicação. A inicialização do SchedulerxWorker varia conforme o tipo de aplicação:
Standard Java or Spring
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-worker</artifactId> <version>${schedulerx2.version}</version> <!--If you use logback, exclude log4j and log4j2. --> <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>Spring Boot
<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-spring-boot-starter</artifactId> <version>${schedulerx2.version}</version> <!-- If you use logback, exclude log4j and log4j2 --> <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> -
Obtenha a configuração de acesso da sua aplicação: a região Internet e seu endpoint (acm.aliyun.com).
Faça login no console do MSE SchedulerX e altere a região para Internet na barra de navegação superior.
-
No painel de navegação à esquerda, clique em Application Management. Na página Application Management, localize sua aplicação e clique em Access Configuration na coluna Actions para obter a configuração do método de acesso correspondente.
Na caixa de diálogo Access Configuration, a lista suspensa Access Method à esquerda contém opções para Spring Boot, Java, Spring, Agent, k8s e Helm. Ao selecionar Spring Boot, o painel direito exibe os parâmetros de configuração:
schedulerx2.endpoint=acm.aliyun.com,schedulerx2.namespace,schedulerx2.groupIdeschedulerx2.appKey(obrigatório para a versão 1.2.1 e posteriores).Selecione um método de acesso para visualizar sua configuração.
-
Inicialize o SchedulerxWorker. O processo de inicialização difere conforme o tipo de aplicação:
Standard Java
Inicialize o SchedulerxWorker na função main.
public void initSchedulerxWorker() throws Exception { SchedulerxWorker schedulerxWorker = new SchedulerxWorker(); schedulerxWorker.setEndpoint("xxxx"); schedulerxWorker.setNamespace("xxxx"); schedulerxWorker.setGroupId("xxxx"); // Set the appKey for versions 1.2.1 and later. schedulerxWorker.setAppKey("xxxx"); schedulerxWorker.init(); }No painel Access Configuration, clique em Copy para copiar a configuração para o arquivo correspondente. Alternativamente, defina
schedulerxWorker.setEndpoint,schedulerxWorker.setNamespace,schedulerxWorker.setGroupIdeschedulerxWorker.setAppKeycom os valores obtidos na Etapa 2.NotaCaso uma aplicação contenha vários serviços ou seja necessário categorizar tarefas agendadas, crie múltiplos grupos. Por exemplo, para a aplicação
animals, crie dois novos grupos:animals.dogseanimals.cats. Não é necessário provisionar instâncias separadas para conectar-se a esses grupos. Basta listar ambos apósgroupId=no cliente da aplicação, como emgroupId=animals.dogs,animals.cats.Para mais opções de configuração ao inicializar o cliente SchedulerxWorker, consulte SchedulerxWorker configuration parameters.
Spring
Injete o bean SchedulerxWorker no arquivo de configuração XML.
<bean id="schedulerxWorker" class="com.alibaba.schedulerx.worker.SchedulerxWorker"> <property name="endpoint"> <value>${endpoint}</value> </property> <property name="namespace"> <value>${namespace}</value> </property> <property name="groupId"> <value>${groupId}</value> </property> <!-- Set the appKey parameter for versions 1.2.1 and later. --> <property name="appKey"> <value>${appKey}</value> </property> </bean>No painel Access Configuration, clique em Copy para copiar a configuração para o arquivo correspondente. Alternativamente, substitua
${endpoint},${namespace},${groupId}e${appKey}pelos valores obtidos na Etapa 2.Spring Boot
No arquivo application.properties, adicione a seguinte configuração:
spring.schedulerx2.endpoint=${endpoint} spring.schedulerx2.namespace=${namespace} spring.schedulerx2.groupId=${groupId} # Set the appKey for versions 1.2.1 and later. spring.schedulerx2.appKey=${appKey}No painel Access Configuration, clique em Copy para copiar a configuração para o arquivo correspondente. Alternativamente, substitua
${endpoint},${namespace},${groupId}e${appKey}pelos valores obtidos na Etapa 2.NotaSe uma aplicação envolver vários serviços de negócios ou for necessário categorizar tarefas agendadas, crie múltiplos grupos. Por exemplo, para uma aplicação chamada animals, crie dois grupos: animals.dogs e animals.cats. Não é necessário executar instâncias separadas para cada grupo. Em vez disso, configure os grupos no cliente listando-os no parâmetro groupId, por exemplo,
groupId=animals.dogs,animals.cats. -
Crie uma classe
JavaProcessorna aplicação para implementar uma tarefa agendada.O exemplo de classe
JavaProcessorabaixo imprime periodicamentehello schedulerx2.0.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; @Component public class MyHelloJob extends JavaProcessor { @Override public ProcessResult process(JobContext context) throws Exception { System.out.println("hello schedulerx2.0"); return new ProcessResult(true); } } Execute a aplicação local.
Verificar o resultado
Faça login no console do MSE SchedulerX. No painel de navegação à esquerda, clique em Application Management e visualize o valor de Total Instances da aplicação desejada.

Se Total Instances for 0, a aplicação não conseguiu se conectar. Verifique e modifique a aplicação local.
Caso Total Instances seja diferente de 0 e exiba o número de instâncias conectadas, a conexão da aplicação foi estabelecida com sucesso.