首先,我们通过一个示意图来了解TASKCTL对各种作业类型的调用过程,并理解什么是插件,以及插件的作用。
整个过程的解释如下:
由上可知,插件本质就是一个脚本程序(TASKCTL的插件不仅限于shell脚本,也可以是C程序),它根据统一参数接口获取信息,并解析出具体的作业程序名称、作业参数以及相应的环境信息等,同时,根据这些信息运行相应的作业。
试想一下,如果给足够的信息,我们一定可以快速通过一个shell脚本运行一个具体的作业。而有了驱动插件程序,只需简单的配置,我们就可以使用指定的作业类型。
插件的核心——统一的接口,它是怎么描述各种作业的完整信息
插件程序的6个统一入口参数,以及与作业定义属性的一一对应关系
作业日志统一获取接口
作业日志查看,是调度的重要的功能之一。
如果自己开发驱动插件,并自己定义一种相应的作业类型,要怎样处理,才可以在taskctl中查看作业的具体运行日志?
插件脚本举例
在TASKCTL产品服务端,自身带了很多作业类型以及相应的插件驱动程序,我们只要简单分析一下这些驱动程序,即可理解。
在此,给大家推荐一下几个具有代表性作业驱动程序。
1 python 【python作业类型】
插件路径:
$TASKCTLDIR/src/plugin/python/shell/cprunpython.sh
2 ktrjob 【kettle 转换类型】
插件路径:
$TASKCTLDIR/src/plugin/ktrjob/shell/cprun ktrjob.sh
3 oraproc 【oracle存储过程】
插件路径:
$TASKCTLDIR/src/plugin/oraproc/shell/cprun oraproc.sh
插件配置-定义作业类型
插件开发完后,需要部署插件、定义作业类型等操作
一般情况下,插件就是一个shell程序。编写完后,我们需要将插件程序部署到TASKCTL服务节点以及相应代理节点。
从理论上,我们可以将插件部署到TASKCTL安装用户的任意目录。但为了管理方便,我们还是遵循TASKCTL的一些管理规范。TASKCTL自身带了很多作业类型及其驱动插件,统一存放到$TASKCTLDIR/src/plugin下,并按每一种作业类型建立子目录存放。
用admin用户登录桌面客户端admin组件, 进入以下界面即可配置。
关键定义项说明:
保存完毕后,您重新打开Designer,就可以看到您所添加的作业类型。
Designer中使用新建作业类型mysql
1 工具箱中出现新的作业类型mysql
2 代码中可以输入mysql作业类型
3 流程图中出现mysql作业节点
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。