全部产品
云市场

在本地开发接入测试环境

更新时间:2019-08-05 22:02:33

本文介绍如何将本地工程接入云上测试环境来进行本地开发、调试和验证。

注意:云上测试环境不保证稳定性和数据安全性,只是方便本地开发调试使用。请测试验证完成后,删除任务并在线上正式环境创建相同的任务。

前提条件

由于 SchedulerX 是 EDAS 的组件,所以在使用 SchedulerX 在为应用接入任务调度能力前,需要先开通 EDAS 服务,并在组件中心中开通分布式任务调度 2.0(免费)。

创建任务调度分组

您需要首先为应用创建任务调度分组。该分组的 Group ID 将作为应用接入任务调度的配置参数。

  1. 登录 EDAS 控制台

  2. 在左侧导航栏中选择组件中心 > 分布式任务调度 2.0,然后在左侧导航栏单击应用管理

  3. 应用管理页面选择测试(华东 1)命名空间,然后单击创建

    创建应用分组

  4. 创建应用分组对话框输入 Group ID,然后单击确定

  5. 创建完成后,自动返回应用管理页面,在应用列表中查看应用分组是否已存在。

应用接入任务调度

测试环境,主要分为以下几步:

步骤一:在应用pom.xml文件中添加SchedulerxWorker依赖

针对不同应用,在初始化 SchedulerxWorker 的时候会有所区别,下面分别说明。

普通 Java/Spring 工程

  1. <dependency>
  2. <groupId>com.aliyun.schedulerx</groupId>
  3. <artifactId>schedulerx2-worker</artifactId>
  4. <version>${schedulerx2.version}</version>
  5. </dependency>

Spring Boot 框架引用

  1. <dependency>
  2. <groupId>com.aliyun.schedulerx</groupId>
  3. <artifactId>schedulerx2-spring-boot-starter</artifactId>
  4. <version>${schedulerx2.version}</version>
  5. </dependency>

步骤二:初始化 SchedulerxWorker

针对不同应用,在初始化 SchedulerxWorker 的时候会有所区别,下面分别说明:

独立Java应用

main函数中初始化SchedulerxWorker

  1. private static void initSchedulerxWorker() throws Exception {
  2. // 测试环境 endpoint 为 acm.aliyun.com
  3. String endpoint = "xxx";
  4. // 为测试环境命名空间里面的namespace的ID
  5. String namespace = "xxx-xxx";
  6. // 替换之前创建的分组的 Group ID
  7. String groupId = "schedulerx.defaultGroup";
  8. SchedulerxWorker schedulerxWorker = new SchedulerxWorker();
  9. schedulerxWorker.setGroupId(groupId);
  10. schedulerxWorker.init();
  11. LOGGER.info("SchedulerxWorker init success. groupId={}", groupId);
  12. }

说明

  • 一个应用如果有不止一个业务,或者想把定时任务进行归类,可以建立多个分组。比如应用名是 animals,新建两个分组 animals.dogsanimals.cats。此时不用申请两批实例分别接入 2 个分组,一个应用可以同时接入 2 个分组,在客户端中将这 2 个分组配置到groupId=后面,如groupId=animals.dogs,animals.cats即可。

  • 在初始化 SchedulerxWorker 客户端时,根据实际业务,如果还有其它配置需求,可以参考 SchedulerxWorker 配置参数说明增加配置。

Spring 应用

在 xml 配置文件中注入SchedulerxWorker Bean

  1. <bean id="schedulerxWorker" class="com.alibaba.schedulerx.worker.SchedulerxWorker">
  2. // 测试环境为acm.aliyun.com
  3. <property name="endpoint" value="${endpoint}"/>
  4. // 为测试环境命名空间里面的namespace的ID
  5. <property name="namespace" value="${namespace}"/>
  6. // 填写之前创建的分组的 Group ID,可以配置多个分组,以英文逗号(,)分隔。
  7. <property name="groupId" value="${groupId}"/>
  8. </bean>

Spring Boot 应用

application.properties文件中添加如下配置:

  1. // 测试环境为acm.aliyun.com
  2. spring.schedulerx2.endpoint=${endpoint}
  3. // 为测试环境命名空间里面的namespace的ID
  4. spring.schedulerx2.namespace=${namespace}
  5. // 填写之前创建的分组的 Group ID
  6. spring.schedulerx2.groupId=${groupId}

说明:一个应用如果有不止一个业务,或者想把定时任务进行归类,可以建立多个分组。比如应用名是 animals,新建两个分组 animals.dogsanimals.cats。此时不用申请两批实例分别接入 2 个分组,一个应用可以同时接入 2 个分组,在客户端中将这 2 个分组配置到groupId=后面,如groupId=animals.dogs,animals.cats即可。

步骤三:实现任务调度类

参考 Demo 示例,实现任务调度类。

步骤四:运行本地应用

结果验证

  1. 登录 EDAS 控制台

  2. 在左侧导航栏中选择组件中心 > 分布式任务调度 2.0,然后在左侧导航栏单击应用管理

  3. 应用管理页面选择测试(华东 1)命名空间,然后在应用分组的操作列单击连接机器

    结果验证

  4. 如果您在集群列表看到本地的机器,则说明本地开发环境接入测试环境成功。