分布式工作流任务调度系统EasyScheduler自定义任务插件开发

简介: 分布式工作流任务调度系统EasyScheduler自定义任务插件开发
+关注继续查看

任务插件开发

提醒:目前任务插件开发暂不支持热部署

基于SHELL的任务

基于YARN的计算(参见MapReduceTask)

  • 需要在 cn.escheduler.server.worker.task 下的 TaskManager 类中创建自定义任务(也需在TaskType注册对应的任务类型)
  • 需要继承cn.escheduler.server.worker.task 下的 AbstractYarnTask
  • 构造方法调度 AbstractYarnTask 构造方法
  • 继承 AbstractParameters 自定义任务参数实体
  • 重写 AbstractTaskinit 方法中解析自定义任务参数
  • 重写 buildCommand 封装command

基于非YARN的计算(参见ShellTask)

  • 需要在 cn.escheduler.server.worker.task 下的 TaskManager 中创建自定义任务
  • 需要继承cn.escheduler.server.worker.task 下的 AbstractTask
  • 构造方法中实例化 ShellCommandExecutor

    public ShellTask(TaskProps props, Logger logger) {
      super(props, logger);
    
      this.taskDir = props.getTaskDir();
    
      this.processTask = new ShellCommandExecutor(this::logHandle,
          props.getTaskDir(), props.getTaskAppId(),
          props.getTenantCode(), props.getEnvFile(), props.getTaskStartTime(),
          props.getTaskTimeout(), logger);
      this.processDao = DaoFactory.getDaoInstance(ProcessDao.class);
    }

传入自定义任务的 TaskProps和自定义Logger,TaskProps 封装了任务的信息,Logger分装了自定义日志信息

  • 继承 AbstractParameters 自定义任务参数实体
  • 重写 AbstractTaskinit 方法中解析自定义任务参数实体
  • 重写 handle 方法,调用 ShellCommandExecutorrun 方法,第一个参数传入自己的command,第二个参数传入 ProcessDao,设置相应的 exitStatusCode

基于非SHELL的任务(参见SqlTask)

  • 需要在 cn.escheduler.server.worker.task 下的 TaskManager 中创建自定义任务
  • 需要继承cn.escheduler.server.worker.task 下的 AbstractTask
  • 继承 AbstractParameters 自定义任务参数实体
  • 构造方法或者重写 AbstractTaskinit 方法中,解析自定义任务参数实体
  • 重写 handle 方法实现业务逻辑并设置相应的exitStatusCode
目录
相关文章
|
20天前
|
JavaScript Java Shell
xxl-Job分布式任务调度 2
xxl-Job分布式任务调度
33 0
|
20天前
|
监控 Java 调度
xxl-Job分布式任务调度 1
xxl-Job分布式任务调度
13 0
|
26天前
|
Java 调度 Spring
非分布式任务调度@Scheduled
@Scheduled注解是Spring Boot提供的用于定时任务控制的注解,主要用于控制任务在某个指定时间执行,或者每隔一段时间执行,默认是在单线程中执行的
16 0
|
26天前
|
监控 算法 Java
分布式任务调度框架XXL-JOB入门教程
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。
35 0
|
2月前
|
调度
从零玩转xxl-job分布式任务调度2
从零玩转xxl-job分布式任务调度
|
2月前
|
SQL Java 调度
从零玩转xxl-job分布式任务调度1
从零玩转xxl-job分布式任务调度
|
2月前
|
SQL Java 调度
xxl-job(分布式任务调度平台)的使用
xxl-job(分布式任务调度平台)的使用
36 0
|
3月前
|
分布式计算 前端开发 数据可视化
第三代分布式任务调度框架PowerJob
PowerJob是新一代分布式任务调度与计算框架,支持CRON、API、固定频率、固定延迟等调度策略,提供工作流来编排任务解决依赖关系,能让您轻松完成作业的调度与繁杂任务的分布式计算。
209 0
|
3月前
|
SQL 监控 Java
分布式任务调度之xxl-job
分布式任务调度之xxl-job
|
3月前
|
SpringCloudAlibaba 负载均衡 JavaScript
分布式任务调度框架:XXL-JOB(入门篇)
将调度行为抽象形成“调度中心”公共平台,而平台自身并不承担业务逻辑,“**调度中心**”负责发起调度请求。将任务抽象成分散的JobHandler,交由“执行器”统一管理,“**执行器**”负责接收调度请求并执行对应的JobHandler中业务逻辑。因此,“调度”和“任务”两部分可以相互解耦,提高系统整体稳定性和扩展性;
195 0
相关产品
云迁移中心
推荐文章
更多