taskctl怎么获取脚本返回的字符串值?

浏览: 1608

在 TASKCTL解决方案资源-->范例:TASKCTL设计主要技术点-->condition,最灵活的控制手段(流程), 是有简单的提到怎么用的。

    blob.png

    分支3和分支4就是通过shell中返回一个字符串做判断,然后再决定该运行那个分支。

    通过查看代码设计和对应的shell脚本,应该是TASKCTL对每个任务都有很多记录,TASKCTL_JOB_RETMSG是给用户提供一种可以直接自定义任务的属性(状态、记录),然后通过自带函数getjretmsg来获取这一属性,达到灵活控制调度流程的目的。

      官方的案例中的shell脚本如下:

#!/bin/sh
sleep 10
echo "TASKCTL_JOB_RETMSG=$1"
exit 0

    调度中案例的代码如下:

 <sh>
<name>job2</name>
<progname>$TASKCTLDIR/demo/shell/branchctl2.sh</progname>
<para>$(retmsg)</para>
<jobdesc>返回a-分支3,返回b-分支4</jobdesc>
</sh>
<!--分支3 -->
<parallel>
<name>allbranch1</name>
<serial>
<name>branch3</name>
<jobdesc>分支3</jobdesc>
<condition>if(strcmp(getjretmsg('job2'),'a')==0) CTL_DOIT else CTL_IGN</condition>
<exe>
......
</exe>
<exe>
......
</exe>
</serial>
<!--分支4 -->
<serial>
<name>branch4</name>
<jobdesc>分支4</jobdesc>
<condition>if(strcmp(getjretmsg('job2'),'b')==0) CTL_DOIT else CTL_IGN</condition>
<exe>
......
</exe>
<exe>
......
</exe>
</serial>
</parallel>

    每个任务被定义了后应该都有很多类型的属性,TASKCTL_JOB_RETMSG只是其中一种。自带函数getjretmsg就是获取这个属性(TASKCTL_JOB_RETMSG)的方法。使用时应该注意,TASKCTL_JOB_RETMSG='',这个应该单独成行,但同一个作业中出现多次时,以第一次为准。

推荐 0
本文由 ETL批量调度-Taskctl 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册