美文网首页ETL作业调度工具TASKCTL
TASKCTL作业类型的插件与维护管理

TASKCTL作业类型的插件与维护管理

作者: TASKCTL | 来源:发表于2022-03-18 17:08 被阅读0次

    什么是作业驱动插件

    首先,我们通过一个示意图来了解TASKCTL对各种作业类型的调用过程,并理解什么是插件,以及插件的作用。

    整个过程的解释如下:

    1.调度核心发起一个作业的调度请求,并将A类型作业A_JOB1的完成描述信息传递出去。

    2.在具体的执行节点代理端(哪个执行代理,由A_JOB1的agentid属性决定),一个叫ctlcpg的组件会接收第一步ctlfdc发出执行指令信息,并立即调用相应的插件程序(一般情况下,插件程序就是一个shell脚本),同时,将完整的A_JOB1描述信息传递到该插件。

    3.A插件程序通过统一入口参数接收完整的作业信息,解析该信息,并执行具体作业程序A_JOB1。

    4.A_JOB1作业程序根据插件传入的参数,做具体的业务处理。

    由上可知,插件本质就是一个脚本程序(TASKCTL的插件不仅限于shell脚本,也可以是C程序),它根据统一参数接口获取信息,并解析出具体的作业程序名称、作业参数以及相应的环境信息等,同时,根据这些信息运行相应的作业。

    为什么说TASKCTL插件很简单

    试想一下,如果给足够的信息,我们一定可以快速通过一个shell脚本运行一个具体的作业。而有了驱动插件程序,只需简单的配置,我们就可以使用指定的作业类型。

    插件的核心——统一的接口,它是怎么描述各种作业的完整信息

    插件程序的6个统一入口参数,以及与作业定义属性的一一对应关系

    1.每一种作业类型的插件都会通过插件脚本传入6个参数。

    2.通过对应关系,系统自动将作业定义的progname、para、exppara、hostuser四个属性,完整地传入相应的插件程序。

    3.progname、para、exppara、hostuser具体表达什么,具体格式规则是什么,这就是插件与Designer应用之间的约定。总之,插件按具体约定规则,通过这四个属性,可以解析出描述一个作业的完整信息,并且,插件可以根据这些完整的信息,运行具体的作业程序即可。

    4.hostuser,是用于无代理执行的属性。如果该作业类型不提供无代理执行机制,该接口就不用;同时,在作业定义时,也不用定义hostuser属性。

    作业日志统一获取接口

    作业日志查看,是调度的重要的功能之一。

    如果自己开发驱动插件,并自己定义一种相应的作业类型,要怎样处理,才可以在taskctl中查看作业的具体运行日志?

    凡是通过插件运行的程序,只要是标屏显示的日志,TASKCTL即可自动捕获。

    如果你的具体作业程序未将日志标屏输出,那么,在插件中,就需尽最大的可能,获取日志,并将该信息输出到屏幕。否则,在TASKCTL中,就无法查看相关作业类型的作业运行日志。

    插件脚本举例

    在TASKCTL产品服务端,自身带了很多作业类型以及相应的插件驱动程序,我们只要简单分析一下这些驱动程序,即可理解。

    在此,给大家推荐一下几个具有代表性作业驱动程序。

    1 python 【python作业类型】

    插件路径:

    2 ktrjob 【kettle 转换类型】

    插件路径:

    3 oraproc 【oracle存储过程】

    插件路径:

    插件配置-定义作业类型

    插件开发完后,需要部署插件、定义作业类型等操作

    部署驱动插件

    一般情况下,插件就是一个shell程序。编写完后,我们需要将插件程序部署到TASKCTL服务节点以及相应代理节点。

    从理论上,我们可以将插件部署到TASKCTL安装用户的任意目录。但为了管理方便,我们还是遵循TASKCTL的一些管理规范。TASKCTL自身带了很多作业类型及其驱动插件,统一存放到$TASKCTLDIR/src/plugin下,并按每一种作业类型建立子目录存放。

    配置作业类型

    用admin用户登录桌面客户端admin组件, 进入以下界面即可配置。

    关键定义项说明:

    1.类型名程,为自己的作业类型改一个名称,比如:mysql等。

    2.驱动定义,执行方式选择shell, 执行程序填写您插件程序部署的全路径。停止方式选command(如果您自定义一个停止插件也可以)

    3.高级定义,一般采用缺省即可。

    4.保存完毕后,您重新打开Designer,就可以看到您所添加的作业类型。

    Designer中使用新建作业类型mysql

    1 工具箱中出现新的作业类型mysql

    2 代码中可以输入mysql作业类型

    3 流程图中出现mysql作业节点

    相关文章

      网友评论

        本文标题:TASKCTL作业类型的插件与维护管理

        本文链接:https://www.haomeiwen.com/subject/epxwdrtx.html