您可以为您的Spring应用快速接入SchedulerX,实现分布式任务调度能力。

Spring应用客户端接入SchedulerX

  1. 在应用程序的pom.xml文件中添加SchedulerxWorker依赖。

    请参见客户端版本说明schedulerx2.version使用最新客户端版本。

    <dependency>
        <groupId>com.aliyun.schedulerx</groupId>
        <artifactId>schedulerx2-worker</artifactId>
        <version>${schedulerx2.version}</version>
    </dependency>                   
  2. 在xml配置文件中初始化SchedulerxWorker(注入Bean)。
    • 初始化SchedulerxWorker时,会用到您部署应用的地域(Region)和对应的Endpoint。详情请参见Endpoint列表
    • namespace为命名空间ID,可以在控制台命名空间页面获取。命名空间
    • groupId为应用ID,appKey为应用key,可以在控制台应用管理页面获取。应用列表-groupId和appKey
    • aliyunAccessKey和aliyunSecretKey为阿里云账号的AccessKeyID和AccessKeySecret,可以在用户信息管理控制台的安全信息管理页面获取。
    <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>
        <!--1.2.1及以上版本设置appKey -->
        <property name="appKey">
          <value>${appKey}</value>
        </property>
        
        <!--1.2.1以下版本需要设置AK/SK -->
        <!--
        <property name="aliyunAccessKey">
          <value>${aliyunAccessKey}</value>
        </property>
        <property name="aliyunSecretKey">
          <value>${aliyunSecretKey}</value>
        </property>
        -->
        
    </bean>
    说明
    • 一个应用如果包含多个业务,或者想把定时任务进行归类,可以建立多个分组,例如应用animals建了两个分组animals.dogsanimals.cats。此时不用申请两批实例分别接入这两个分组,在应用客户端中将这两个分组配置到groupId=后面即可,例如groupId=animals.dogs,animals.cats
    • 在初始化SchedulerxWorker客户端时,如果还有其它配置需求,可以参考SchedulerxWorker 配置参数说明添加配置。
  3. 在应用中创建类JobProcessor,实现任务调度。

    本文仅介绍如何实现一个最简单的定时打印“Hello SchedulerX2.0”JobProcessor类。

    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);
        }
    }              

结果验证

  1. 客户端接入完成,将该应用发布到阿里云。
  2. 登录分布式任务调度平台
  3. 在顶部菜单栏选择地域
  4. 在左侧导航栏单击应用管理
  5. 应用管理页面查看实例总数
    • 如果实例总数为0,则说明应用接入失败。请检查、修改本地应用。
    • 如果实例总数不为0,显示接入的实例个数,则说明应用接入成功。在操作列单击查看实例,即可在连接实例对话框中查看实例列表。
    应用管理-实例总数

后续步骤

应用接入SchedulerX完成后,即可在分布式任务调度平台创建调度任务。详情请参见创建调度任务