网络科技

    今日:183| 主题:301648
收藏本版
互联网、科技极客的综合动态。

[其他] 开发你的第一个SchedulerX任务

[复制链接]
咱能不逗吗~ 发表于 2016-10-13 12:26:11
301 8
摘要: 本文档主要介绍了从创建一个定时任务、定时任务的配置、定时任务处理器的编写到定时任务执行客户端 Bean 配置的完整流程,旨在以最简单明了的方式引导您快速上手 SchedulerX,为进一步使用和熟悉 SchedulerX 的功能提供入门。
  EDAS SchedulerX 快速入门

  简介

  SchedulerX 是一个分布式定时任务调度系统。用户在应用中依赖 SchedulerX-Client,并在 SchedulerX 控制台创建定时任务,进行相应的参数配置后,启动该应用就可以接收到定时任务的周期调度。SchedulerX-Server 集群为调度触发提供高可用性和高稳定性的保证,并且可以实现对用户客户端机器集群进行分布式调度。
  本文档主要介绍了从创建一个定时任务、定时任务的配置、定时任务处理器的编写到定时任务执行客户端 Bean 配置的完整流程,旨在以最简单明了的方式引导您快速上手 SchedulerX,为进一步使用和熟悉 SchedulerX 的功能提供入门。
  本文档主要包含以下内容:
  
       
  • 如何在应用中创建一个定时任务处理器   
  • 如何创建一个定时任务并配置任务触发时间周期   
  • 如何运行一个定时任务执行客户端,接收任务定时调度   
  • 开发者旺旺交流群  
  创建定时任务示例

  下文以建立一个每隔 1 分钟执行一次 Hello World 输出的定时任务为例进行说明。
   1. 在工程中添加 schedulerX-client 依赖

        
  1. <dependency>  <groupId>com.alibaba.edas</groupId>  <artifactId>schedulerX-client</artifactId>  <version>1.6.5</version></dependency>
复制代码
      2. 实现 Job 处理器接口

        
  1. 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) 在 创建任务 对话框输入相应信息,单击 确定
   

开发你的第一个SchedulerX任务

开发你的第一个SchedulerX任务

  Job 分组:对应 EDAS 中的服务分组,并在右侧选择 Job 所在的域。
  在选择 EDAS 服务分组时可使用默认分组或者选择已经存在的分组,也可使用新创建的服务分组。
  EDAS 服务分组的创建方法:
   在 EDAS 控制台左侧菜单栏选择 服务市场 >服务分组,单击右上角 创建服务组
   Job 处理接口:输入接口实现的全类名(完整包路径加类名)。
  此处填入您在第 2 步创建的 Job 处理器 ExecuteShellJobProcessor 的全类名(com.schedulerx.test.ExecuteShellJobProcessor)。
   定时表达式:可使用工具生成,也可手工修改时间表达式字符串。
  
       
  • 工具生成  
   

开发你的第一个SchedulerX任务

开发你的第一个SchedulerX任务

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

开发你的第一个SchedulerX任务

开发你的第一个SchedulerX任务

  此处时间表达式兼容 Quartz 时间表达式,Quartz 提供七个域(分别对应: 秒>分>小时>日>月>周>年),通常年可以省略。
   详细时间表达式说明请参考 EDAS SchedulerX 使用指南-创建 JOB 。
  4. SchedulerX Client 初始化(两种方式)

  独立 Java 应用方式
        
  1. 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 的依赖。
        
  1. <dependency>  <groupId>org.springframework</groupId>  <artifactId>spring-web</artifactId>  <version>4.1.5.RELEASE</version></dependency>
复制代码
      在 Spring 配置文件中增加 SchedulerXClient bean 的配置。
        
  1. <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 监听器。
        
  1. <?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 配置的属性值必需和您在控制台的配置信息保持一致,如下图。
   

开发你的第一个SchedulerX任务

开发你的第一个SchedulerX任务

  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 的任务。
向真 发表于 2016-10-13 12:47:56
确实不错,顶先
回复 支持 反对

使用道具 举报

JulianNop 发表于 2016-10-13 12:48:12
咱能不逗吗~的帖子越来越有深度了!
回复 支持 反对

使用道具 举报

筠如 发表于 2016-10-13 12:49:00
以后要跟咱能不逗吗~好好学习学习!
回复 支持 反对

使用道具 举报

程凤 发表于 2016-10-13 13:21:04
出问题先从自己身上找原因,别一便秘就怪地球没引力.
回复 支持 反对

使用道具 举报

wgja2tQm 发表于 2016-10-13 19:19:13
2016-10-13是幸运日哦
回复 支持 反对

使用道具 举报

壮壮 发表于 2016-10-13 19:23:50
前排,哇咔咔
回复 支持 反对

使用道具 举报

YIYAO888 发表于 2016-10-13 19:24:04
好,很好,非常好!
回复 支持 反对

使用道具 举报

邓传坤 发表于 2016-11-16 11:07:16
鸟大了什么林子都有。。
回复 支持 反对

使用道具 举报

我要投稿

推荐阅读


回页顶回复上一篇下一篇回列表
手机版/c.CoLaBug.com ( 粤ICP备05003221号 | 粤公网安备 44010402000842号 )

© 2001-2017 Comsenz Inc.

返回顶部 返回列表