taskctl內置函數getjresult和getjstate的區別和意義

在使用taskctl時,有時候希望能通過獲取上個節點的執行情況來決定是否執行某個節點。這個需求可以通過getjresult在condition條件中判斷作業返回值來實現,如以下代碼:
<condition>if($getjresult('job1')==0) CTL_DOIT else CTL_ING</condition>

不過有時候還希望作業job1出錯後,人工強制通過也算成功。那麼採用getjresult函數就不太好實現了。這時候我們需要運用內置函數getjstate。查看《TASKCTL控制器與模塊代碼》 中關於getjstate的說明。我們知道11 代表成功執行,15代表忽略錯誤通過(此內容有遺漏)。因此,我們只需要把condition條件改爲如下代碼即可:

<condition>if($getjstate('job1')==11 or $getjstate('job1')==15) CTL_DOIT else CTL_ING</condition>
總結一下兩者的意義:
getjresult -- 表示獲取作業本身產生的返回值,如shell腳本的exit 0
getjstate -- 表示TASKCTL執行作業的狀態結果,這個值是由TASKCTL定義和產生的
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章