taskctl怎麼獲取腳本返回的字符串值?

在 TASKCTL解決方案資源-->範例:TASKCTL設計主要技術點-->condition,最靈活的控制手段(流程), 是有簡單的提到怎麼用的。

    blob.png

    分支3和分支4就是通過shell中返回一個字符串做判斷,然後再決定該運行那個分支。

    通過查看代碼設計和對應的shell腳本,應該是TASKCTL對每個任務都有很多記錄,TASKCTL_JOB_RETMSG是給用戶提供一種可以直接自定義任務的屬性(狀態、記錄),然後通過自帶函數getjretmsg來獲取這一屬性,達到靈活控制調度流程的目的。

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

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

    調度中案例的代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<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='',這個應該單獨成行,但同一個作業中出現多次時,以第一次爲準。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章