全部产品
云市场

脚本任务示例

更新时间:2019-01-14 23:36:41

本文通过示例介绍如何使用 SchedulerX 的脚本任务。

注意:使用脚本任务需要 schedulerx-client-2.1.5 及以上版本。

创建脚本任务

1. 创建 shell 脚本任务

  1. 在 EDAS 控制台左侧导航栏栏选择组件中心 > 任务管理

  2. 在左侧导航栏单击 任务列表

  3. Job 列表页面右上角单击创建 Job

  4. 创建 Job页面类型中选择脚本任务,然后在脚本内容 中录入 shell 脚本。

    1. echo "Hello,"
    2. echo "EDAS"

    任务执行后,会在执行日志中输出 “Hello,EDAS” 信息。

2. 创建带参数的 shell 任务

  1. 编辑一个 shell 脚本,保存为 /Users/xxx/shellJobTest/hello.sh。

    1. echo $1
    2. echo $2
  2. 编辑一个 shell 任务,然后在脚本内容中录入 shell 脚本。

    1. /Users/xxx/shellJobTest/hello.sh HelloEDAS

    任务执行后,会在执行日志中输出“Hello,EDAS”信息。

3. 创建 Python 脚本任务

  1. 编辑一个 Python 脚本,保存为 /Users/xxx/shellJobTest/hello.py。

    1. print('Hello edas, python!')
    2. val1 = 1
    3. val2 = 0
    4. val3 = val1/val2
    5. print('val3 is ' + val3)
  2. 编辑一个 shell 任务,然后在脚本内容中录入 shell 脚本。

    1. python /Users/xxx/shellJobTest/hello.py

    说明:这里故意写了一个错误的逻辑,1/0会输出异常,并记录在异常日志中。

4. 任务执行结果查看

Job 列表 页面对应的 Job记录右侧选择更多 > 触发记录。可以查看到任务的执行详情、执行日志和执行结果。

运行脚本任务

运行脚本任务有两种方式:依赖 Client 的方式Agent 方式

依赖 Client 的方式

  1. 在应用工程中添加 SchedulerX-client 依赖。

    1. <dependency>
    2. <groupId>com.alibaba.edas</groupId>
    3. <artifactId>schedulerX-client</artifactId>
    4. <version>2.1.5</version>
    5. </dependency>
  2. 初始化 SchedulerX Client。

    初始化 SchedulerX Client 基于两种应用:独立 Java 应用Spring 应用

    • 独立 Java 应用

      1. package com.schedulerx.test;
      2. import com.alibaba.edas.schedulerx.SchedulerXClient;
      3. public class schedulerxTestMain {
      4. public static void main(String[] args) {
      5. SchedulerXClient schedulerXClient = new SchedulerXClient();
      6. schedulerXClient.setGroupId("111-1-1-11");
      7. schedulerXClient.setRegionName("cn-hangzhou");
      8. schedulerXClient.setNewVersion(true);
      9. /*
      10. //如果使用的是上海 Region 内的集群,需要设置 domainName 属性,同时指定 RegionName 为 cn-shanghai
      11. schedulerXClient.setRegionName("cn-shanghai");
      12. schedulerXClient.setDomainName("schedulerx-shanghai.console.aliyun.com");
      13. */
      14. try {
      15. schedulerXClient.init();
      16. } catch (Throwable e) {
      17. e.printStackTrace();
      18. }
      19. }
      20. }
    • Spring 应用

      1. <bean id="schedulerXClient" class="com.alibaba.edas.schedulerx.SchedulerXClient" init-method="init">
      2. <property name="groupId">
      3. <value>101-1-1-77</value>
      4. </property>
      5. <property name="regionName">
      6. <value>cn-hangzhou</value>
      7. </property>
      8. <!--如果使用的是上海 Region 内的集群,需要设置 domainName 属性,同时指定 RegionName 为 cn-shanghai
      9. <property name="regionName">
      10. <value>cn-shanghai</value>
      11. </property>
      12. <property name="domainName">
      13. <value>schedulerx-shanghai.console.aliyun.com</value>
      14. </property>-->
      15. <property name="newVersion">
      16. <value>true</value>
      17. </property>
      18. </bean>

Agent 方式

  1. 下载 SchedulerX-Agent。

    可在应用机器上通过 wget 命令下载 SchedulerX Agent。

    SchedulerX Agent 下载地址:http://edas.oss-cn-hangzhou.aliyuncs.com/SchedulerX/schedulerx-client-2.1.4.tar.gz

  2. 运行 SchedulerX-Agent。

    1. 解压下载的压缩包,进入 SchedulerX-Agent/conf 目录,编辑 agent.ini 文件。

      1. [baseSection]
      2. groupId=111-1-1-0001 //任务分组编号
      3. domainName=schedulerx.console.aliyun.com //域名,如果是上海 Region 请填写 schedulerx-shanghai.console.aliyun.com
      4. regionName=cn-test //填写对应的 regionName
      5. newVersion=true //缺省参数,不用修改
    2. 进入 SchedulerX-Agent/bin 目录,执行 start-1g.sh

      根据任务负载及机器配置情况可对应使用 start-2g.shstart-4g.shstart-8g.sh

    Agent 提示启动成功,就可以接收定时任务调度了。