liangyanliang
现在想从shell中返回一个字符转当作ID使用,taskctl怎么获取这个字符串?看了好多文档,没找到解决方案 ,在线等 ,再就是TASKCTL_JOB_RETMSG 怎么用?没范例
山兔
其实官方自带的案例里面是有你要的资料的,只是内容有点太多,可能被忽略掉了。
在 TASKCTL解决方案资源-->范例:TASKCTL设计主要技术点-->condition,最灵活的控制手段(流程), 是有简单的提到怎么用的。
分支3和分支4就是通过shell中返回一个字符串做判断,然后再决定该运行那个分支。
通过查看代码设计和对应的shell脚本,应该是TASKCTL对每个任务都有很多记录,TASKCTL_JOB_RETMSG是给用户提供一种可以直接自定义任务的属性(状态、记录),然后通过自带函数getjretmsg来获取这一属性,达到灵活控制调度流程的目的。
沙发 发表于 2017-03-10 11:23 回复(0)
解释的不是很清楚,建议你加TASKCTL的官方QQ群
板凳 发表于 2017-03-10 11:25 回复(0)
官方的案例中的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)的方法。
地板 发表于 2017-03-10 11:45 回复(1)
请登录后评论~