在使用taskctl時,有時候但願能經過獲取上個節點的執行狀況來決定是否執行某個節點。這個需求能夠經過getjresult在condition條件中判斷做業返回值來實現,如如下代碼:shell
<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>
總結一下二者的意義:code
getjresult -- 表示獲取做業自己產生的返回值,如shell腳本的exit 0xml
getjstate -- 表示TASKCTL執行做業的狀態結果,這個值是由TASKCTL定義和產生的get