系統(tǒng)組件:事件服務(wù)器、事件處理器、遠(yuǎn)程代理
事件處理器請(qǐng)求(1)事件服務(wù)器后獲取相關(guān)作業(yè)信息(2)并將之通過(guò)代理連接(3)傳遞給遠(yuǎn)程代理(4),遠(yuǎn)程代理會(huì)往事件處理器發(fā)送回執(zhí)表示已經(jīng)接收相關(guān)作業(yè)內(nèi)容(5)。然后遠(yuǎn)程代理開(kāi)始運(yùn)行客戶端作業(yè)(6)并發(fā)起一個(gè)CHANGE_STATUS事件通知事件服務(wù)器作業(yè)狀態(tài)為RUNNING(7),當(dāng)客戶端作業(yè)完成時(shí)會(huì)通過(guò)遠(yuǎn)程代理(8)向事件服務(wù)器發(fā)送程序結(jié)束狀態(tài)碼(9)。
常見(jiàn)作業(yè)類型
Command - 可以是shell腳本或是可執(zhí)行程序
Box - 作為可以包含其它作業(yè)的容器使用,能夠組織和控制處理流程。如果其中包含的作業(yè)中沒(méi)有指定開(kāi)始運(yùn)行條件的話,Box中的作業(yè)則會(huì)在Box滿足運(yùn)行條件時(shí)立即并行運(yùn)行。
File watcher - 啟動(dòng)一個(gè)文件監(jiān)控進(jìn)程,用于檢測(cè)文件是否存在以及文件大小。當(dāng)文件大小達(dá)到某個(gè)最小檢測(cè)值,并且不再繼續(xù)增長(zhǎng)時(shí),F(xiàn)ile Watcher作業(yè)就算執(zhí)行成功。
常見(jiàn)作業(yè)操作
autorep -> 列舉出指定作業(yè)的各種相關(guān)信息 -> autorep -j
job_depends -> 查看依賴條件 -> job_depends [-c | -d ] [-J job_name]
sendevent -> 作業(yè)控制 -> sendevent -j ?-e
EVENT的可用值說(shuō)明
+ STARTJOB - 開(kāi)始作業(yè)
+ FORCE_STARTJOB - 強(qiáng)制開(kāi)始作業(yè),不考慮其依賴條件與調(diào)度設(shè)置
+ KILLJOB - 關(guān)閉作業(yè)
+ DELETEJOB - 刪除作業(yè)
+ JOB_ON_ICE - 與下面的ON_HOLD一樣,ON_ICE也會(huì)阻止指定的作業(yè)運(yùn)行,區(qū)別見(jiàn)下文
+ JOB_OFF_ICE - 與ON_ICE操作對(duì)立
+ JOB_ON_HOLD - 阻止指定的作業(yè)運(yùn)行
+ JOB_OFF_HOLD - 與ON_HOLD操作對(duì)立
+ CHANGE_STATUS - 手動(dòng)修過(guò)作業(yè)狀態(tài)。當(dāng)Autosys無(wú)法跟蹤作業(yè)狀態(tài)時(shí)可以使用該功能。比如說(shuō)Autosys中報(bào)告出某個(gè)作業(yè)仍在運(yùn)行,而時(shí)機(jī)上該作業(yè)并未運(yùn)行,這時(shí)就可以使用命令“sendevent -j ?-e CHANGE_STATUS -s STATUS”修改作業(yè)狀態(tài)。其中的STATUS可以是ACTIVATED或FAILURE或INACTIVE或ON_HOLD或ON_ICE或QUE_WAIT或REFRESH_DEPENDENCIES或REFRESH_FILEWATCHER或RESTART或RUNNING或STARTING或SUCCESS或TERMINATED。
ON ICE與ON HOLD的區(qū)別
區(qū)別一,對(duì)于ON_HOLD的作業(yè)來(lái)說(shuō),如果在ON_HOLD期間曾經(jīng)滿足過(guò)運(yùn)行條件,那么在OFF_HOLD后,作業(yè)會(huì)立即開(kāi)始執(zhí)行。而同樣的情況不適用于OFF_ICE后的作業(yè),OFF_ICE后的作業(yè)必須等待運(yùn)行條件重新被滿足才會(huì)運(yùn)行。
區(qū)別二:依賴ON_HOLD作業(yè)的作業(yè)不會(huì)運(yùn)行,而依賴于ON_ICE作業(yè)的作業(yè)會(huì)運(yùn)行,此時(shí)ON_ICE作業(yè)的狀態(tài)被視為SUCCESS。
Box作業(yè)特點(diǎn)
其最終狀態(tài)取決于其包含的內(nèi)部作業(yè),只有被包含的全部作業(yè)都運(yùn)行成功,它的狀態(tài)才是成功,否則任一被包含作業(yè)運(yùn)行失敗,其狀態(tài)則變?yōu)槭?。定義Box作業(yè)時(shí)不需要指定機(jī)器名,機(jī)器名主要是為運(yùn)行腳本和命令的作業(yè)服務(wù),而B(niǎo)ox作業(yè)只是一個(gè)作業(yè)容器與實(shí)際執(zhí)行的進(jìn)程無(wú)關(guān),所以Box作業(yè)不需要機(jī)器名。