忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
最近访问板块 发新帖
查看: 4328 | 回复: 0

[其他] taskctl怎么获取脚本返回的字符串值? [复制链接]

论坛徽章:
0
发表于 2017-11-02 10:21 |显示全部楼层
本帖最后由 越过山丘 于 2017-11-02 10:25 编辑

在 TASKCTL解决方案资源-->范例:TASKCTL设计主要技术点-->condition,最灵活的控制手段(流程), 是有简单的提到怎么用的。
   
    分支3和分支4就是通过shell中返回一个字符串做判断,然后再决定该运行那个分支。
    通过查看代码设计和对应的shell脚本,应该是TASKCTL对每个任务都有很多记录,TASKCTL_JOB_RETMSG是给用户提供一种可以直接自定义任务的属性(状态、记录),然后通过自带函数getjretmsg来获取这一属性,达到灵活控制调度流程的目的。
      官方的案例中的shell脚本如下:
  1. #!/bin/sh
  2. sleep 10
  3. echo "TASKCTL_JOB_RETMSG=$1"
  4. exit 0
复制代码
    调度中案例的代码如下:
  1. <sh>
  2. <name>job2</name>
  3. <progname>$TASKCTLDIR/demo/shell/branchctl2.sh</progname>
  4. <para>$(retmsg)</para>
  5. <jobdesc>返回a-分支3,返回b-分支4</jobdesc>
  6. </sh>
  7. <!--分支3 -->
  8. <parallel>
  9. <name>allbranch1</name>
  10. <serial>
  11. <name>branch3</name>
  12. <jobdesc>分支3</jobdesc>
  13. <condition>if(strcmp(getjretmsg('job2'),'a')==0) CTL_DOIT else CTL_IGN</condition>
  14. <exe>
  15. ......
  16. </exe>
  17. <exe>
  18. ......
  19. </exe>
  20. </serial>
  21. <!--分支4 -->
  22. <serial>
  23. <name>branch4</name>
  24. <jobdesc>分支4</jobdesc>
  25. <condition>if(strcmp(getjretmsg('job2'),'b')==0) CTL_DOIT else CTL_IGN</condition>
  26. <exe>
  27. ......
  28. </exe>
  29. <exe>
  30. ......
  31. </exe>
  32. </serial>
  33. </parallel>
复制代码
    每个任务被定义了后应该都有很多类型的属性,TASKCTL_JOB_RETMSG只是其中一种。自带函数getjretmsg就是获取这个属性(TASKCTL_JOB_RETMSG)的方法。使用时应该注意,TASKCTL_JOB_RETMSG='',这个应该单独成行,但同一个作业中出现多次时,以第一次为准。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

【内含福利】这个大会由AI推荐~
福利投放:从ChinaUnix社区申领报名可获得600元门票;到场可获得小米手环3一个

40+场AI前沿主题演讲, 五大AI专题论坛, 1000平米AI实景应用展区, 更有30+大咖亲临, 美国工程院院士丛京生、中国工程院院士高文、美国杜克大学终身副教授陈怡然、百度深度学习技术平台部负责人马艳军等顶级研究专家为你带来最前沿的AI分享。 金秋九月,AICC2018人工智能计算大会 与你,邀约北京!

报名了解>>
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP