开源分布式工作流任务调度系统EasyScheduler自定义任务插件开发
2019-06-13 17:43
1151 查看
版权声明:*************本文为博主原创文章,未经许可不得转载************* https://blog.csdn.net/oDaiLiDong/article/details/91879310
任务插件开发
提醒:目前任务插件开发暂不支持热部署
基于SHELL的任务
基于YARN的计算(参见MapReduceTask)
- 需要在 cn.escheduler.server.worker.task 下的 TaskManager 类中创建自定义任务(也需在TaskType注册对应的任务类型)
- 需要继承cn.escheduler.server.worker.task 下的 AbstractYarnTask
- 构造方法调度 AbstractYarnTask 构造方法
- 继承 AbstractParameters 自定义任务参数实体
- 重写 AbstractTask 的 init 方法中解析自定义任务参数
- 重写 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 自定义任务参数实体
-
重写 AbstractTask 的 init 方法中解析自定义任务参数实体
-
重写 handle 方法,调用 ShellCommandExecutor 的 run 方法,第一个参数传入自己的command,第二个参数传入 ProcessDao,设置相应的 exitStatusCode
基于非SHELL的任务(参见SqlTask)
- 需要在 cn.escheduler.server.worker.task 下的 TaskManager 中创建自定义任务
- 需要继承cn.escheduler.server.worker.task 下的 AbstractTask
- 继承 AbstractParameters 自定义任务参数实体
- 构造方法或者重写 AbstractTask 的 init 方法中,解析自定义任务参数实体
- 重写 handle 方法实现业务逻辑并设置相应的exitStatusCode
相关文章推荐
- 分布式工作流任务调度系统Easy Scheduler正式开源
- 分布式工作流任务调度系统Easy Scheduler正式开源
- 工作流管理系统开发之八 开源osworkflow之任务管理
- Easy Scheduler 1.0.3 发布,分布式工作流任务调度系统
- web工作流管理系统开发之八 开源osworkflow之任务管理
- 分布式任务队列与任务调度系统Celery入门
- 工作流管理系统开发之十七 任务管理
- twisted开发分布式任务调度爬虫
- 【开源】java集群任务调度系统 cuckoo-schedule
- 分布式定时任务调度系统 Saturn 安装部署
- 基于nginx+xxl-job+springboot高可用分布式任务调度系统实战(集群版)
- 2019最全 Go语言开发分布式任务调度 轻松搞定高性能Crontab
- 【niubi-job——一个开源的分布式任务调度框架】-----安装教程
- Go语言开发分布式任务调度 轻松搞定高性能Crontab(冒泡IT社区教程下载)
- A. 系统架构概要 --- 分布式系统 --- 任务调度
- web工作流管理系统开发之五 开源osworkflow之用户系统改造
- 分布式系统大数据量计算抢占式任务调度
- 【niubi-job——一个分布式的任务调度框架】----如何开发一个niubi-job的定时任务
- 开源B2B2C WSTMart商城系统开发框架及插件介绍
- Go语言开发分布式任务调度 轻松搞定高性能Crontab