若谷学院
互联网公司技术架构分享

开发你的第一个SchedulerX任务

EDAS SchedulerX 快速入门

简介

SchedulerX 是一个分布式定时任务调度系统。用户在应用中依赖 SchedulerX-Client,并在 SchedulerX 控制台创建定时任务,进行相应的参数配置后,启动该应用就可以接收到定时任务的周期调度。SchedulerX-Server 集群为调度触发提供高可用性和高稳定性的保证,并且可以实现对用户客户端机器集群进行分布式调度。

本文档主要介绍了从创建一个定时任务、定时任务的配置、定时任务处理器的编写到定时任务执行客户端 Bean 配置的完整流程,旨在以最简单明了的方式引导您快速上手 SchedulerX,为进一步使用和熟悉 SchedulerX 的功能提供入门。

本文档主要包含以下内容:

  • 如何在应用中创建一个定时任务处理器
  • 如何创建一个定时任务并配置任务触发时间周期
  • 如何运行一个定时任务执行客户端,接收任务定时调度
  • 开发者旺旺交流群

创建定时任务示例

下文以建立一个每隔 1 分钟执行一次 Hello World 输出的定时任务为例进行说明。

1. 在工程中添加 schedulerX-client 依赖

<dependency>
<groupId>com.alibaba.edas</groupId>
<artifactId>schedulerX-client</artifactId>
<version>1.6.5</version>
</dependency>

2. 实现 Job 处理器接口

package com.schedulerx.test;
import java.util.Date;
import com.alibaba.edas.schedulerX.ProcessResult;
import com.alibaba.edas.schedulerX.ScxSimpleJobContext;
import com.alibaba.edas.schedulerX.ScxSimpleJobProcessor;
public class ExecuteShellJobProcessor implements ScxSimpleJobProcessor {
public ProcessResult process(ScxSimpleJobContext context) {
System.out.println("Hello World! "+new Date());
return new ProcessResult(true);//true表示执行成功,false表示失败
}
}

3. 在 EDAS 控制台创建 Job

1) 登陆 EDAS 控制台(https://edas.console.aliyun.com/), 选择左侧菜单栏分布式任务调度,单击右上角新建 Job

2) 在创建任务对话框输入相应信息,单击确定

Job 分组:对应 EDAS 中的服务分组,并在右侧选择 Job 所在的域。

在选择 EDAS 服务分组时可使用默认分组或者选择已经存在的分组,也可使用新创建的服务分组。

EDAS 服务分组的创建方法:

在 EDAS 控制台左侧菜单栏选择服务市场>服务分组,单击右上角创建服务组

Job 处理接口:输入接口实现的全类名(完整包路径加类名)。

此处填入您在第 2 步创建的 Job 处理器 ExecuteShellJobProcessor 的全类名(com.schedulerx.test.ExecuteShellJobProcessor)。

定时表达式:可使用工具生成,也可手工修改时间表达式字符串。

  • 工具生成

  • 手工修改时间表达式字符串:

此处时间表达式兼容 Quartz 时间表达式,Quartz 提供七个域(分别对应: 秒>分>小时>日>月>周>年),通常年可以省略。

详细时间表达式说明请参考 EDAS SchedulerX 使用指南-创建 JOB

4. SchedulerX Client 初始化(两种方式)

独立 Java 应用方式

package com.schedulerx.test;

import com.alibaba.edas.schedulerX.SchedulerXClient;

public class schedulerxTestMain {

public static void main(String[] args) {
SchedulerXClient schedulerXClient = new SchedulerXClient();

schedulerXClient.setServiceGroupId("5976ca6f-f699-49d8-94f4-8ca91b4cb566");
schedulerXClient.setServiceGroup("schedulerxTestGroup");

schedulerXClient.setRegionName("cn-hangzhou");

try {
schedulerXClient.init();
} catch (Throwable e) {
e.printStackTrace();
}
}

}

EDAS 应用管理( war 包部署)方式

在项目工程中增加 spring-web 的依赖。

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.5.RELEASE</version>
</dependency>

在 Spring 配置文件中增加 SchedulerXClient bean 的配置。

<bean id="schedulerXClient" class="com.alibaba.edas.schedulerX.SchedulerXClient"  init-method="init">
<property name="serviceGroupId">
<value>5976ca6f-f699-49d8-94f4-8ca91b4cb566</value>
</property>
<property name="serviceGroup">
<value>schedulerxTestGroup</value>
</property>
<property name="regionName">
<value>cn-hangzhou</value>
</property>
</bean>

同时,在 web.xml 配置 Spring 监听器。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
<display-name>scxWarTest</display-name>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
</web-app>

注意: 以上两种方式,schedulerXClient 配置的属性值必需和您在控制台的配置信息保持一致,如下图。

1)服务分组 ID,对应 schedulerXClient Bean 中的 serviceGroupId 属性。

2)服务分组名称,对应 schedulerXClient Bean 中的 serviceGroup 属性。

3)区域名称,对应 schedulerXClient Bean 中的 regionName 属性。

5. 应用启动(两种方式)

独立 Java 应用方式

首先,在运行应用的机器安装 EDAS Agent。

然后,把应用打好的 jar 包上传至应用服务器。

最后,运行主函数 schedulerxTestMain,同时在程序启动时加上参数 -Dspas.identity=/home/admin/.spas_key/default

EDAS 应用管理( war 包部署)方式

首先,将应用打好 war 包。

然后,在 EDAS 控制台应用管理中创建应用,上传 war 包。

最后,在应用管理中启动应用。

启动应用后,系统将会根据您的设定(每隔1分钟)调用实现 Job 处理器接口的类代码(ExecuteShellJobProcessor),完成打印输出 Hello World 的任务。

原文出自:http://jm.taobao.org/archives/page/8/

好烂呀没啥价值凑合看看还不错很精彩 (还没有人评分)
Loading...
本站文章来自互联网一线技术博客,若有侵权,请联系我们:若谷技术学院 » 开发你的第一个SchedulerX任务
关注若谷技术,获得个性化即时架构文章推送

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

全球互联网技术架构,前沿架构参考

联系我们博客/网站内容提交