在使用taskctl時(shí),有時(shí)候希望能通過(guò)獲取上個(gè)節(jié)點(diǎn)的執(zhí)行情況來(lái)決定是否執(zhí)行某個(gè)節(jié)點(diǎn)。這個(gè)需求可以通過(guò)getjresult在condition條件中判斷作業(yè)返回值來(lái)實(shí)現(xiàn),如以下代碼: - <condition>if($getjresult('job1')==0) CTL_DOIT else CTL_ING</condition>
復(fù)制代碼 不過(guò)有時(shí)候還希望作業(yè)job1出錯(cuò)后,人工強(qiáng)制通過(guò)也算成功。那么采用getjresult函數(shù)就不太好實(shí)現(xiàn)了。這時(shí)候我們需要運(yùn)用內(nèi)置函數(shù)getjstate。查看《TASKCTL控制器與模塊代碼》 中關(guān)于getjstate的說(shuō)明。我們知道11 代表成功執(zhí)行,15代表忽略錯(cuò)誤通過(guò)(此內(nèi)容有遺漏)。因此,我們只需要把condition條件改為如下代碼即可: - <condition>if($getjstate('job1')==11 or $getjstate('job1')==15) CTL_DOIT
- else CTL_ING</condition>
復(fù)制代碼 總結(jié)一下兩者的意義: getjresult -- 表示獲取作業(yè)本身產(chǎn)生的返回值,如shell腳本的exit 0 getjstate -- 表示TASKCTL執(zhí)行作業(yè)的狀態(tài)結(jié)果,這個(gè)值是由TASKCTL定義和產(chǎn)生的
|