开发者社区 问答 正文

SchedulerX for EDAS怎么快速入门


本文主要介绍如何快速上手使用 SchedulerX,包括如何创建和配置一个定时任务、定时任务处理器的编写以及定时任务执行客户端 Bean 配置。
主要内容如下:


  1. 创建定时任务处理器

  2. 创建定时任务并配置任务触发时间周期

  3. 运行客户端,启动调度任务

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

1、创建定时任务处理器


  1. 在工程中添加 SchedulerX -client 依赖<dependency>
  2. <groupId>com.alibaba.edas</groupId>
  3. <artifactId>schedulerX-client</artifactId>
  4. <version>1.6.6</version>
  5. </dependency>

实现 Job 处理器接口
  1. package com.schedulerx.test;
  2. import java.util.Date;
  3. import com.alibaba.edas.schedulerX.ProcessResult;
  4. import com.alibaba.edas.schedulerX.ScxSimpleJobContext;
  5. import com.alibaba.edas.schedulerX.ScxSimpleJobProcessor;
  6. public class ExecuteShellJobProcessor implements ScxSimpleJobProcessor {
  7. public ProcessResult process(ScxSimpleJobContext context) {
  8.   System.out.println("Hello World! "+new Date());
  9.   return new ProcessResult(true);//true表示执行成功,false表示失败
  10. }
  11. }


2、创建定时任务并配置任务触发时间周期


  1. 登录 EDAS 控制台, 在左侧菜单栏选择 分布式任务调度 > 任务分组,在右上角单击 新建分组。

  2. 在 新建分组 对话框输入分组描述,单击 确定。

  3. 在左侧菜单栏选择 分布式任务调度 > 任务管理,在右上角单击 新建 Job。

  4. 在 创建任务 对话框输入相应信息,单击 确定。
    • 任务分组 ID:对应 schedulerXClient Bean 中的 groupId 属性。
    • 区域名称:对应 schedulerXClient Bean 中的 regionName 属性。

启动调度任务。

  • 独立 Java 应用方式

    1. 在运行应用的机器安装 EDAS Agent。

    2. 把应用打好的 JAR 包上传至应用服务器。

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

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

    1. 将应用打好 WAR 包。

    2. 在 EDAS 控制台应用管理中创建应用,上传 WAR 包。

    3. 在应用管理中启动调度任务应用。

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

展开
收起
猫饭先生 2017-10-26 11:27:48 1657 分享 版权
阿里云 AI 助理回答

要快速上手使用SchedulerX并创建一个定时任务,执行以下步骤:

1. 创建定时任务处理器

  • 添加依赖:确保项目中已添加SchedulerX客户端依赖。例如,使用Maven时,在pom.xml文件中加入:

    <dependency>
      <groupId>com.alibaba.edas</groupId>
      <artifactId>schedulerx-client</artifactId>
      <version>1.6.6</version> <!-- 根据实际版本调整 -->
    </dependency>
    
  • 实现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 {
      @Override
      public ProcessResult process(ScxSimpleJobContext context) {
          System.out.println("Hello World! " + new Date());
          return new ProcessResult(true); // true表示执行成功
      }
    }
    

2. 创建定时任务并配置触发周期

  • 登录控制台:访问EDAS或SchedulerX控制台,选择分布式任务调度 > 任务分组,点击新建分组,填写描述后保存。

  • 创建Job:在任务管理页面,点击新建Job,输入任务信息,包括但不限于:

    • 任务名称:自定义任务名称。
    • 任务类型:根据处理器类型选择(如Java任务)。
    • 执行类:指定上述创建的处理器类全路径(如com.schedulerx.test.ExecuteShellJobProcessor)。
    • Cron表达式:设置任务执行周期,例如0 */1 * * * ?代表每分钟执行一次。
  • 配置参数:确保任务分组ID与客户端Bean中的groupId属性匹配,区域名称与regionName属性一致。

3. 启动调度任务

独立Java应用方式

  1. 安装EDAS Agent:在运行应用的服务器上安装EDAS Agent。
  2. 上传JAR包:将应用打包成JAR文件并上传至服务器。
  3. 启动应用:通过命令行启动应用,并传入EDAS认证信息,如:
    java -jar your-app.jar -Dspas.identity=/path/to/your/spas_key
    

应用管理(WAR包部署)方式

  1. 打包WAR文件:将应用打包为WAR格式。
  2. 创建应用:在EDAS控制台的应用管理界面创建应用,并上传WAR包。
  3. 启动应用:在控制台启动应用,并配置相应的调度任务。

注意事项

  • 地域一致性:确保SchedulerX地域和客户端地域保持一致,避免连接失败。
  • 网络访问:非阿里云环境需开放公网访问权限,并在公网地域创建应用。
  • 资源限制:合理配置应用的资源使用限制,如CPU、内存阈值等,以保证应用健康运行。
  • 日志与监控:考虑开启日志服务,便于任务执行情况的跟踪与问题排查。

完成以上步骤后,系统将按照设定的时间周期(本例中为每分钟)自动调用ExecuteShellJobProcessor类,输出“Hello World”信息。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答