您可以为您的Spring应用快速接入SchedulerX,实现分布式任务调度能力。
前提条件
Spring应用客户端接入SchedulerX
在应用程序的
pom.xml
文件中添加SchedulerxWorker依赖。请参见客户端发布记录,
schedulerx2.version
使用最新客户端版本。<dependency> <groupId>com.aliyun.schedulerx</groupId> <artifactId>schedulerx2-worker</artifactId> <version>${schedulerx2.version}</version> <!--如果用的是logback,需要把log4j和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>
在xml配置文件中初始化SchedulerxWorker(注入Bean)。
初始化SchedulerxWorker时,会用到您部署应用的地域(Region)和对应的Endpoint。详情请参见Endpoint列表。
namespace为命名空间ID,可以在控制台命名空间页面获取。
groupId为应用ID,appKey为应用key,可以在控制台应用管理页面获取。您也可以在操作列,单击接入配置获取对应接入方式的配置信息。
<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> </bean>
说明一个应用如果包含多个业务,或者想把定时任务进行归类,可以建立多个分组,例如应用
animals
建了两个分组animals.dogs
和animals.cats
。此时不用申请两批实例分别接入这两个分组,在应用客户端中将这两个分组配置到groupId=
后面即可,例如groupId=animals.dogs,animals.cats
。在初始化SchedulerxWorker客户端时,如果还有其它配置需求,可以参考SchedulerxWorker配置参数说明添加配置。
在应用中创建类
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); } }
结果验证
客户端接入完成,将该应用发布到阿里云。
登录分布式任务调度平台,在顶部菜单栏选择地域,然后在左侧导航栏,单击应用管理,在应用管理页面查看实例总数。
如果实例总数为0,说明应用接入失败。请检查、修改本地应用。
如果实例总数不为0,显示接入的实例个数,说明应用接入成功。在操作列单击查看实例,即可在连接实例对话框中查看实例列表。
后续步骤
应用接入SchedulerX完成后,即可在分布式任务调度平台创建调度任务。更多信息,请参见创建调度任务。