全部产品
云市场

快速入门

更新时间:2020-03-30 11:17:31

任务调度产品支持多种任务类型,包括简单任务、集群任务。您可以根据业务的需求,选择其一实现业务,详见 任务类型。本文将以简单任务为例,介绍如何快速完成一个简单任务的本地开发以及控制台任务配置等。

操作步骤如下:

  1. 前置条件
  2. 实现处理器接口
  3. 实现类
  4. 发布应用
  5. 控制台配置任务
  6. 查看调度记录

如需任务调度工程示例代码,参见 下载示例代码

前置条件

任务调度产品客户端支持使用 SOFABoot 框架或其它 Maven 工程框架开发。SOFABoot 是基于 Spring Boot 的开发框架,用于快速、敏捷地开发 Spring 应用程序,特别适合构建微服务系统。此处以 SOFABoot 为例介绍应用开发示例。有关非 SOFABoot 工程的配置,参见 应用开发 > 前置条件 > 非 SOFABoot 工程

在开始 SOFABoot 应用开发前,请确认您已完成以下准备工作:

  1. 下载并配置好一个 SOFABoot 工程原型。配置步骤参见 SOFABoot 快速开始。最新版本信息参见 SOFABoot 版本说明
  2. 在 SOFABoot 工程中引入任务调度产品的依赖:
    1. <dependency>
    2. <groupId>com.alipay.sofa</groupId>
    3. <artifactId>scheduler-enterprise-sofa-boot-starter</artifactId>
    4. </dependency>
  3. 修改 SOFABoot 全局配置项,详见 引入 SOFA 中间件 > 添加中间件全局配置项

实现处理器接口

代码示例

  1. /**
  2. * 简单任务处理器接口
  3. */
  4. public interface ISimpleJobHandler extends IJobHandler {
  5. /**
  6. * 处理request
  7. *
  8. * @param context
  9. * @return
  10. */
  11. ClientCommonResult handle(JobExecuteContext context);
  12. }

代码说明:
JobExecuteContext 是触发任务的请求上下文,可以从里面获取到任务的一些信息,比如在控制台创建任务时设置的自定义参数,可以通过 getCustomParam(String key) 方法获取。如果设置了任务分片,可以通过方法 getSharding() 来获取当前机器分配到的分片号。详细信息可以查看 com.alipay.antschedulerclient.model.JobExecuteContext 这个类的源码。

实现类

类里必须实现以下三个方法:

  • handle:在该方法里执行业务逻辑。
  • getThreadPool:获取一个执行该任务的线程池,如果没有设置,会使用 client 自带的线程池。
    1. new ThreadPoolExecutor(20,
    2. 300, 1, TimeUnit.HOURS, new ArrayBlockingQueue<Runnable>(100) {})
  • getName:获取这个执行器的名字,这个名字很重要,client接收到任务的触发请求时,会根据名字寻找匹配的执行器。
说明:当任务需要按多个步骤执行时,需要写多个实现类,并在控制台开启分步。

代码示例

  1. public class AlwaysSuccessHandler implements ISimpleJobHandler {
  2. public static final String NAME = "ALWAYS_SUCCESS_JOB";
  3. @Override
  4. public ClientCommonResult handle(JobExecuteContext context) throws InterruptedException {
  5. //处理业务逻辑
  6. return ClientCommonResult.buildSuccessResult();
  7. }
  8. @Override
  9. public ThreadPoolExecutor getThreadPool() {
  10. return null;
  11. }
  12. @Override
  13. public String getName() {
  14. return NAME;
  15. }
  16. }

发布应用

参考 发布部署应用

控制台配置

  1. 进入任务调度产品产品控制台页面,左侧导航栏选择 任务配置
  2. 任务配置 页面,点击 添加任务 > 简单任务
  3. 在添加简单任务的配置页面,完成任务基本信息的配置:
    • 任务名称:必填,用于识别任务,支持英文、中文、数字、下划线。
    • 应用名称:必填,必须与工程中 application.properties 文件的 spring.application.name 配置的应用名称一致。
    • 调度类型:必填,支持 Cron 表达式触发 及 事件触发。
    • 任务分组:选填,可选择或新建一个任务分组,方便归纳管理任务。
    • 优先级:选填,标记任务的重要性等级,对任务的执行无实质影响。
    • 执行器名字:必填,必须与代码中任务处理器名字一致。
    • 是否分片:选填,默认为否,开启后需要设置分片数量。
    • 自定义参数:选填,支持多种类型的参数配置,详见 使用自定义参数
    • 路由策略:必填,可选项:随机(默认)、定向、轮询。
    • 通信方式:必填,支持 单向 ONEWAY 及 回调 CALLBACK。
      • 单向 ONEWAY:单向操作,无返回值。
      • 回调 CALLBACK:双向操作,有返回值。选择 CALLBACK 类型,即需要配置 任务互斥、漏触发策略、超时策略、超时时间及失败处理策略。详见 任务参数说明
    • 描述:选填项,任务的详细描述,例如业务含义、影响范围等,最多 1024 个字符。
  4. 任务信息配置完成后,点击 提交,即可在任务列表中看到该任务。

如果有客户端在线,新配置的任务自动有客户端注册。任务配置好后默认是禁用的,需要人工手动启用,启用后任务才可以按设置进行调度。在禁用的状态下也可以在操作下点击 触发,手动触发一次任务。

启用

查看调度记录

  1. 任务配置 页面的列表中,点击任务名称进入 任务详情 页面。
  2. 调度记录 页签中查看调度记录。调度记录最多保留 7 天。您可以使用页签上方的下拉列表筛选调度记录类型:
    • 全部调度记录
    • 调度执行成功
    • 调度执行失败
    • 漏调度

全部调度记录

相关链接