亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種任務(wù)調(diào)度方法及系統(tǒng)的制作方法

文檔序號:6432339閱讀:184來源:國知局
專利名稱:一種任務(wù)調(diào)度方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本申請涉及日志技術(shù),特別是涉及一種任務(wù)調(diào)度方法及系統(tǒng)。
背景技術(shù)
日志是指有關(guān)計(jì)算機(jī)系統(tǒng)發(fā)生的事務(wù)或操作的記錄。在各種應(yīng)用系統(tǒng),如銀行系統(tǒng)、門戶網(wǎng)站系統(tǒng)、電子商務(wù)系統(tǒng)、公司內(nèi)部的財(cái)務(wù)系統(tǒng)等等應(yīng)用系統(tǒng)中,都會(huì)將系統(tǒng)運(yùn)行過程中所發(fā)生的一切記錄為日志,并生成日志文件,然后通過對日志文件的解析,就可以詳細(xì)了解系統(tǒng)的整個(gè)運(yùn)行過程。在日志解析的過程中需要對日志來執(zhí)行各項(xiàng)操作,所述對日志執(zhí)行的操作可以看作是一項(xiàng)任務(wù),例如,下載日志可以看作是一項(xiàng)任務(wù),要執(zhí)行下載日志這項(xiàng)任務(wù)就需要調(diào)度任務(wù),然后通過系統(tǒng)命令將任務(wù)發(fā)送到操作系統(tǒng),操作系統(tǒng)再執(zhí)行下載日志的操作。在任務(wù)調(diào)度中任務(wù)可以分為后置任務(wù)和前置任務(wù),前置任務(wù)執(zhí)行完畢才能執(zhí)行后置任務(wù)。通常的任務(wù)調(diào)度系統(tǒng)的配置是當(dāng)天調(diào)度當(dāng)天的任務(wù),當(dāng)天執(zhí)行的后置任務(wù)可以自動(dòng)找到當(dāng)天的前置任務(wù),判斷當(dāng)天的前置任務(wù)執(zhí)行完畢,則可以執(zhí)行當(dāng)天的后置任務(wù)。但是由于系統(tǒng)配置的局限性,在一些特殊的情況下,若前置任務(wù)和后置任務(wù)不在同一天執(zhí)行。例如,后置任務(wù)是當(dāng)天的任務(wù),所述后置任務(wù)的前置任務(wù)是前一天的任務(wù)。此時(shí)由于前置任務(wù)和后置任務(wù)不在同一天執(zhí)行,使得在執(zhí)行當(dāng)天的后置任務(wù)時(shí)無法自動(dòng)找到前一天的前置任務(wù),此時(shí)就需要手動(dòng)配置查找所述當(dāng)天后置任務(wù)的前一天的前置任務(wù),查看所述前一天的前置任務(wù)是否執(zhí)行完畢。綜上所述,由于系統(tǒng)配置的局限性導(dǎo)致在一些特殊情況下,需要手動(dòng)配置查找后置任務(wù)的前置任務(wù)。因此會(huì)導(dǎo)致執(zhí)行調(diào)度的時(shí)間比較長,效率較低,并且錯(cuò)誤率較高。

發(fā)明內(nèi)容
本申請?zhí)峁┮环N任務(wù)調(diào)度方法及系統(tǒng),以解決任務(wù)調(diào)度中系統(tǒng)的局限性的問題。為了解決上述問題,本申請公開了一種任務(wù)調(diào)度方法,包括提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù);查找后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表,并通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間;從所述任務(wù)調(diào)度依賴維表中讀取前置任務(wù)的任務(wù)序號,通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)對應(yīng)的任務(wù)調(diào)度運(yùn)行結(jié)果表,其中所述任務(wù)調(diào)度運(yùn)行結(jié)果表中記錄了前置任務(wù)的執(zhí)行狀態(tài);查找所述任務(wù)調(diào)度運(yùn)行結(jié)果表中前置任務(wù)的執(zhí)行狀態(tài)是否為成功,若為執(zhí)行成功,則將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。優(yōu)選的,所述提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù)之后,還包括通過所述調(diào)度定時(shí)時(shí)間計(jì)算后置任務(wù)的計(jì)劃執(zhí)行時(shí)間。
優(yōu)選的,所述通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間,包括后置任務(wù)的計(jì)劃執(zhí)行時(shí)間減去后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中依賴前置任務(wù)的時(shí)間偏移,得到相應(yīng)的計(jì)算值;將所述計(jì)算值結(jié)合后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中的前置依賴定時(shí)時(shí)間,計(jì)算得到所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間。優(yōu)選的,所述提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù)之前,還包括啟動(dòng)任務(wù)調(diào)度,讀取參數(shù),所述參數(shù)包括線程池個(gè)數(shù)η、跨天調(diào)度天數(shù)X、間隔掃描 時(shí)間m和時(shí)區(qū),其中x、n和m為正整數(shù);啟動(dòng)掃描線程、工作線程和監(jiān)控線程,初始化任務(wù)隊(duì)列;根據(jù)時(shí)區(qū)調(diào)整基準(zhǔn)時(shí)鐘。優(yōu)選的,所述提取調(diào)度定時(shí)時(shí)間到期的任務(wù),包括掃描線程根據(jù)跨天調(diào)度天數(shù)X提取X天內(nèi)調(diào)度定時(shí)時(shí)間到期的任務(wù),計(jì)算任務(wù)調(diào)度運(yùn)行結(jié)果表中達(dá)到計(jì)劃執(zhí)行時(shí)間但尚未運(yùn)行的任務(wù)清單。優(yōu)選的,所述將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行之后,還包括掃描線程通過信號量通知工作線程檢測任務(wù)隊(duì)列并提取所述任務(wù)隊(duì)列中的后置任務(wù);工作線程檢測所述后置任務(wù)的任務(wù)鎖是否與正在執(zhí)行任務(wù)的任務(wù)鎖沖突,若不沖突,則執(zhí)行所述后置任務(wù),否則跳過所述后置任務(wù);若執(zhí)行所述任務(wù),則執(zhí)行所述后置任務(wù)前,置換任務(wù)運(yùn)行命令中的參數(shù),向任務(wù)調(diào)度運(yùn)行結(jié)果表插入調(diào)度記錄,并將執(zhí)行狀態(tài)初始為正在運(yùn)行;運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令。優(yōu)選的,所述運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令之后,還包括等待所述任務(wù)運(yùn)行命令的返回結(jié)果,如果成功,將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行成功,并返回;如果運(yùn)行失敗,結(jié)合任務(wù)調(diào)度定義表中的失敗重調(diào)度參數(shù),修改任務(wù)運(yùn)行命令,并重新提交工作線程調(diào)度;如果失敗次數(shù)超過任務(wù)調(diào)度定義表中的失敗重調(diào)度次數(shù),將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行失敗,并返回。優(yōu)選的,所述啟動(dòng)工作線程,包括根據(jù)線程池個(gè)數(shù)n,并發(fā)啟動(dòng)η個(gè)工作線程。優(yōu)選的,根據(jù)間隔掃描時(shí)間m,每隔時(shí)間m運(yùn)行掃描線程。優(yōu)選的,所述啟動(dòng)監(jiān)控線程之后,還包括掃描任務(wù)調(diào)度運(yùn)行結(jié)果表,發(fā)送失敗任務(wù)、超時(shí)任務(wù)和/或定時(shí)超時(shí)任務(wù)的對應(yīng)命令。相應(yīng)的,本申請還提供了一種任務(wù)調(diào)度系統(tǒng),包括提取模塊,用于提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù);第二計(jì)算模塊,用于查找后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表,并通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間;查找模塊,用于從所述任務(wù)調(diào)度依賴維表中讀取前置任務(wù)的任務(wù)序號,通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)對應(yīng)的任務(wù)調(diào)度運(yùn)行結(jié)果表,其中所述任務(wù)調(diào)度運(yùn)行結(jié)果表中記錄了每個(gè)任務(wù)的執(zhí)行狀態(tài);判斷模塊,用于查找所述任務(wù)調(diào)度運(yùn)行結(jié)果表中前置任務(wù)的執(zhí)行狀態(tài)是否為成功,若為執(zhí)行成功,則將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。
優(yōu)選的,所述的系統(tǒng)還包括第一計(jì)算模塊,用于通過所述調(diào)度定時(shí)時(shí)間計(jì)算后置任務(wù)的計(jì)劃執(zhí)行時(shí)間。優(yōu)選的,所述的第二計(jì)算模塊,包括相減子模塊,用于后置任務(wù)的計(jì)劃執(zhí)行時(shí)間減去后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中的依賴前置任務(wù)的時(shí)間偏移,得到相應(yīng)的計(jì)算值;計(jì)算子模塊,用于將所述計(jì)算值結(jié)合后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中前置依賴定時(shí)時(shí)間,計(jì)算得到所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間。優(yōu)選的,所述的系統(tǒng)還包括啟動(dòng)模塊,用于啟動(dòng)任務(wù)調(diào)度,讀取參數(shù),所述參數(shù)包括線程池個(gè)數(shù)η、跨天調(diào)度天數(shù)X、間隔掃描時(shí)間m和時(shí)區(qū),其中x、n和m為正整數(shù);初始模塊,用于啟動(dòng)掃描線程、工作線程和監(jiān)控線程,初始化任務(wù)隊(duì)列;時(shí)鐘調(diào)整模塊,用于根據(jù)時(shí)區(qū)調(diào)整基準(zhǔn)時(shí)鐘。優(yōu)選的,所述提取模塊,包括任務(wù)清單子模塊,用于掃描線程根據(jù)跨天調(diào)度天數(shù)X提取X天內(nèi)調(diào)度定時(shí)時(shí)間到期的任務(wù),計(jì)算任務(wù)調(diào)度運(yùn)行結(jié)果表中達(dá)到計(jì)劃執(zhí)行時(shí)間但尚未運(yùn)行的任務(wù)清單。優(yōu)選的,所述的系統(tǒng)還包括提取任務(wù)模塊,用于掃描線程通過信號量通知工作線程檢測任務(wù)隊(duì)列并提取所述任務(wù)隊(duì)列中的任務(wù);測試任務(wù)鎖模塊,用于工作線程檢測所述后置任務(wù)的任務(wù)鎖是否與正在執(zhí)行任務(wù)的任務(wù)鎖沖突,若不沖突,則執(zhí)行所述后置任務(wù),否則跳過所述后置任務(wù);置換參數(shù)模塊,用于若執(zhí)行后置任務(wù),則執(zhí)行所述后置任務(wù)前,置換任務(wù)運(yùn)行命令中的參數(shù),向任務(wù)調(diào)度運(yùn)行結(jié)果表插入調(diào)度記錄,并將執(zhí)行狀態(tài)初始為正在運(yùn)行;任務(wù)運(yùn)行模塊,用于運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令;任務(wù)重調(diào)度模塊,用于等待所述任務(wù)運(yùn)行命令的返回結(jié)果,如果成功,則將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行成功,并返回;如果運(yùn)行失敗,結(jié)合任務(wù)調(diào)度定義表中的失敗重調(diào)度參數(shù),修改任務(wù)運(yùn)行命令,并重新提交工作線程調(diào)度;如果失敗次數(shù)超過任務(wù)調(diào)度定義表中的失敗重調(diào)度次數(shù),將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行失敗,并返回。優(yōu)選的,所述啟動(dòng)模塊根據(jù)線程池個(gè)數(shù)n,并發(fā)啟動(dòng)η個(gè)工作線程;所述掃描模塊根據(jù)間隔掃描時(shí)間m,每隔時(shí)間m運(yùn)行掃描線程。
優(yōu)選的,所述的系統(tǒng)還包括監(jiān)控模塊,用于掃描任務(wù)調(diào)度運(yùn)行結(jié)果表,發(fā)送失敗任務(wù)、超時(shí)任務(wù)和/或定時(shí)超時(shí)任務(wù)的對應(yīng)命令。與現(xiàn)有技術(shù)相比,本申請包括以下優(yōu)點(diǎn)本申請?zhí)峁┮环N任務(wù)調(diào)度方法及系統(tǒng),首先提取調(diào)度定時(shí)時(shí)間到期的任務(wù),然后設(shè)定所述任務(wù)為后置任務(wù),通過所述后置任務(wù)的任務(wù)調(diào)度依賴維表計(jì)算前置任務(wù)的計(jì)劃執(zhí)行時(shí)間,并且從所述任務(wù)調(diào)度依賴維表讀取前置任務(wù)的任務(wù)序號,然后通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài),若為執(zhí)行成功,則后置任務(wù)滿足調(diào)度條件,將所述后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。通過在任務(wù)調(diào)度依賴維表中預(yù)先配置好的任務(wù)之間的依賴關(guān)系,判定前置任務(wù)是否執(zhí)行成功。本申請所述的方法在各種情況下,只要確定了后置任務(wù)就能找到前置任務(wù),確定前置任務(wù)執(zhí)行成功了就可以執(zhí)行后置任務(wù),使得任務(wù)調(diào)度系統(tǒng)更加完善??s短調(diào)度時(shí)間,提高調(diào)度效率,減少了錯(cuò)誤率。其次,本申請通過失敗重調(diào)度參數(shù),可以實(shí)現(xiàn)失敗任務(wù)自動(dòng)重新調(diào)度,避免漏觸發(fā)問題,同時(shí)減少人工參與,只有當(dāng)失敗次數(shù)超過指定次數(shù)時(shí)才認(rèn)為調(diào)度失敗,使得任務(wù)調(diào)度速度更快。而且本申請支持歷史調(diào)度重處理,使得某些特殊場合時(shí)可以重新處理某一天的日志,因此調(diào)度系統(tǒng)更靈活。再次,本申請包含監(jiān)控線程,提供自動(dòng)報(bào)警功能,在檢測到失敗任務(wù)和超時(shí)任務(wù)時(shí)會(huì)通知任務(wù)負(fù)責(zé)人,使得失敗任務(wù)、超時(shí)任務(wù)和定時(shí)超時(shí)任務(wù)可以得到快速的處理,使任務(wù)調(diào)度系統(tǒng)運(yùn)行更快速,更完善。再次,本申請支持對任務(wù)做參數(shù)替換的功能,被調(diào)度任務(wù)經(jīng)常使用的時(shí)間參數(shù)都是通過調(diào)度系統(tǒng)的計(jì)劃執(zhí)行時(shí)間傳遞。并且,本申請根據(jù)時(shí)區(qū)調(diào)整基準(zhǔn)時(shí)鐘,可以實(shí)現(xiàn)在任務(wù)的時(shí)區(qū)轉(zhuǎn)換,例如在中國的主機(jī)上可以按照美國時(shí)間調(diào)度任務(wù)。再次,本申請采用多線程方式調(diào)度,線程池的個(gè)數(shù)和掃描周期可以配置,多個(gè)線程可以并發(fā)執(zhí)行任務(wù)調(diào)度,因此調(diào)度系統(tǒng)更靈活,并且互斥的任務(wù)不能并發(fā)執(zhí)行,使得調(diào)度系統(tǒng)更精確。


圖1是本申請實(shí)施例所述一種任務(wù)調(diào)度方法流程圖;圖2是本申請優(yōu)選實(shí)施例所述一種任務(wù)調(diào)度方法流程圖;圖3是本申請優(yōu)選實(shí)施例所述一種任務(wù)調(diào)度方法中工作線程運(yùn)行任務(wù)流程圖;圖4是本申請優(yōu)選實(shí)施例所述一種任務(wù)調(diào)度方法中工作線程任務(wù)重調(diào)度流程圖;圖5是本申請實(shí)施例所述一種任務(wù)調(diào)度系統(tǒng)結(jié)構(gòu)圖。
具體實(shí)施例方式為使本申請的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式
對本申請作進(jìn)一步詳細(xì)的說明。為了解決跨天調(diào)度的問題,本申請?zhí)峁┝艘环N任務(wù)調(diào)度方法及裝置,可以解決任務(wù)調(diào)度中系統(tǒng)的局限性的問題。
日志是指有關(guān)計(jì)算機(jī)系統(tǒng)發(fā)生的事務(wù)或操作的記錄。通過對日志文件的解析,可以詳細(xì)了解系統(tǒng)的整個(gè)運(yùn)行過程。在日志解析的過程中需要對日志來執(zhí)行各項(xiàng)操作,所述對日志執(zhí)行的操作可以看作是一項(xiàng)任務(wù),例如,下載日志可以看作是一項(xiàng)任務(wù),要執(zhí)行下載日志這項(xiàng)任務(wù)就需要調(diào)度任務(wù),然后通過系統(tǒng)命令將任務(wù)發(fā)送到操作系統(tǒng),操作系統(tǒng)再執(zhí)行下載日志的操作。通常,一個(gè)完整的日志解析方法可以分為以下幾個(gè)步驟I)將數(shù)據(jù)庫的維表配置導(dǎo)出到文件,分布式計(jì)算一般不能直接讀取數(shù)·據(jù)庫維表,否則需要在每一臺(tái)計(jì)算節(jié)點(diǎn)安裝數(shù)據(jù)庫客戶端;2)通過http/ftp/scp/cp等方式下載待分析的原始日志;3)傳統(tǒng)單機(jī)或者分布式計(jì)算方式進(jìn)行日志分析,輸出待入庫的平面文件;4)將待入庫的平面文件入庫到ORACLE或者GREENPLUM ;5)重建數(shù)據(jù)庫索引rebuild_index,插入ETL通知接口標(biāo)記。在這個(gè)日志解析的過程中,如下載日志、解析日志等任務(wù)中都需要對任務(wù)進(jìn)行調(diào)度,下面結(jié)合實(shí)施例具體論述任務(wù)調(diào)度方法。在本申請所述的方法中,可以應(yīng)用于Linux系統(tǒng)中,任務(wù)調(diào)度與任務(wù)之間通過系統(tǒng)命令system執(zhí)行,被調(diào)度的任務(wù)不能常駐內(nèi)存,并且約定返回值為O表示成功,否則表示失敗。并且在本申請所述的方法中每個(gè)任務(wù)可以配置3張表
權(quán)利要求
1.一種任務(wù)調(diào)度方法,其特征在于,包括 提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù); 查找后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表,并通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間; 從所述任務(wù)調(diào)度依賴維表中讀取前置任務(wù)的任務(wù)序號,通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)對應(yīng)的任務(wù)調(diào)度運(yùn)行結(jié)果表,其中所述任務(wù)調(diào)度運(yùn)行結(jié)果表中記錄了前置任務(wù)的執(zhí)行狀態(tài); 查找所述任務(wù)調(diào)度運(yùn)行結(jié)果表中前置任務(wù)的執(zhí)行狀態(tài)是否為成功,若為執(zhí)行成功,則將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù)之后,還包括 通過所述調(diào)度定時(shí)時(shí)間計(jì)算后置任務(wù)的計(jì)劃執(zhí)行時(shí)間。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間,包括 后置任務(wù)的計(jì)劃執(zhí)行時(shí)間減去后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中依賴前置任務(wù)的時(shí)間偏移,得到相應(yīng)的計(jì)算值; 將所述計(jì)算值結(jié)合后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中的前置依賴定時(shí)時(shí)間,計(jì)算得到所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間。
4.根據(jù)權(quán)利要求I所述的方法,其特征在于,提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù)之前,還包括 啟動(dòng)任務(wù)調(diào)度,讀取參數(shù),所述參數(shù)包括線程池個(gè)數(shù)η、跨天調(diào)度天數(shù)X、間隔掃描時(shí)間m和時(shí)區(qū),其中n、x和m為正整數(shù); 啟動(dòng)掃描線程、工作線程和監(jiān)控線程,初始化任務(wù)隊(duì)列; 根據(jù)時(shí)區(qū)調(diào)整基準(zhǔn)時(shí)鐘。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述提取調(diào)度定時(shí)時(shí)間到期的任務(wù),包括 掃描線程根據(jù)跨天調(diào)度天數(shù)X提取X天內(nèi)調(diào)度定時(shí)時(shí)間到期的任務(wù),計(jì)算任務(wù)調(diào)度運(yùn)行結(jié)果表中達(dá)到計(jì)劃執(zhí)行時(shí)間但尚未運(yùn)行的任務(wù)清單。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行之后,還包括 掃描線程通過信號量通知工作線程檢測任務(wù)隊(duì)列并提取所述任務(wù)隊(duì)列中的后置任務(wù); 工作線程檢測所述后置任務(wù)的任務(wù)鎖是否與正在執(zhí)行任務(wù)的任務(wù)鎖沖突,若不沖突,則執(zhí)行所述后置任務(wù),否則跳過所述后置任務(wù); 若執(zhí)行所述任務(wù),則執(zhí)行所述后置任務(wù)前,置換任務(wù)運(yùn)行命令中的參數(shù),向任務(wù)調(diào)度運(yùn)行結(jié)果表插入調(diào)度記錄,并將執(zhí)行狀態(tài)初始為正在運(yùn)行; 運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令之后,還包括等待所述任務(wù)運(yùn)行命令的返回結(jié)果,如果成功,將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行成功,并返回; 如果運(yùn)行失敗,結(jié)合任務(wù)調(diào)度定義表中的失敗重調(diào)度參數(shù),修改任務(wù)運(yùn)行命令,并重新提交工作線程調(diào)度; 如果失敗次數(shù)超過任務(wù)調(diào)度定義表中的失敗重調(diào)度次數(shù),將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行失敗,并返回。
8.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述啟動(dòng)工作線程,包括 根據(jù)線程池個(gè)數(shù)n,并發(fā)啟動(dòng)η個(gè)工作線程。
9.根據(jù)權(quán)利要求4所述的方法,其特征在于 根據(jù)間隔掃描時(shí)間m,每隔時(shí)間m運(yùn)行掃描線程。
10.根據(jù)權(quán)利要求4所述的方法,其特征在于,啟動(dòng)監(jiān)控線程之后,還包括 掃描任務(wù)調(diào)度運(yùn)行結(jié)果表,發(fā)送失敗任務(wù)、超時(shí)任務(wù)和/或定時(shí)超時(shí)任務(wù)的對應(yīng)命令。
11.一種任務(wù)調(diào)度系統(tǒng),其特征在于,包括 提取模塊,用于提取調(diào)度定時(shí)時(shí)間到期的任務(wù),并設(shè)定所提取的任務(wù)為后置任務(wù);第二計(jì)算模塊,用于查找后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表,并通過所述后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表計(jì)算所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間; 查找模塊,用于從所述任務(wù)調(diào)度依賴維表中讀取前置任務(wù)的任務(wù)序號,通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)對應(yīng)的任務(wù)調(diào)度運(yùn)行結(jié)果表,其中所述任務(wù)調(diào)度運(yùn)行結(jié)果表中記錄了每個(gè)任務(wù)的執(zhí)行狀態(tài); 判斷模塊,用于查找所述任務(wù)調(diào)度運(yùn)行結(jié)果表中前置任務(wù)的執(zhí)行狀態(tài)是否為成功,若為執(zhí)行成功,則將后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。
12.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,還包括 第一計(jì)算模塊,用于通過所述調(diào)度定時(shí)時(shí)間計(jì)算后置任務(wù)的計(jì)劃執(zhí)行時(shí)間。
13.根據(jù)權(quán)利要求12所述的系統(tǒng),其特征在于,所述的第二計(jì)算模塊,包括 相減子模塊,用于后置任務(wù)的計(jì)劃執(zhí)行時(shí)間減去后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中的依賴前置任務(wù)的時(shí)間偏移,得到相應(yīng)的計(jì)算值; 計(jì)算子模塊,用于將所述計(jì)算值結(jié)合后置任務(wù)對應(yīng)的任務(wù)調(diào)度依賴維表中前置依賴定時(shí)時(shí)間,計(jì)算得到所述后置任務(wù)對應(yīng)的前置任務(wù)的計(jì)劃執(zhí)行時(shí)間。
14.根據(jù)權(quán)利要求11所述的系統(tǒng),其特征在于,還包括 啟動(dòng)模塊,用于啟動(dòng)任務(wù)調(diào)度,讀取參數(shù),所述參數(shù)包括線程池個(gè)數(shù)η、跨天調(diào)度天數(shù)X、間隔掃描時(shí)間m和時(shí)區(qū),其中x、n和m為正整數(shù); 初始模塊,用于啟動(dòng)掃描線程、工作線程和監(jiān)控線程,初始化任務(wù)隊(duì)列; 時(shí)鐘調(diào)整模塊,用于根據(jù)時(shí)區(qū)調(diào)整基準(zhǔn)時(shí)鐘。
15.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,所述提取模塊,包括 任務(wù)清單子模塊,用于掃描線程根據(jù)跨天調(diào)度天數(shù)X提取X天內(nèi)調(diào)度定時(shí)時(shí)間到期的任務(wù),計(jì)算任務(wù)調(diào)度運(yùn)行結(jié)果表中達(dá)到計(jì)劃執(zhí)行時(shí)間但尚未運(yùn)行的任務(wù)清單。
16.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,還包括 提取任務(wù)模塊,用于掃描線程通過信號量通知工作線程檢測任務(wù)隊(duì)列并提取所述任務(wù)隊(duì)列中的任務(wù);測試任務(wù)鎖模塊,用于工作線程檢測所述后置任務(wù)的任務(wù)鎖是否與正在執(zhí)行任務(wù)的任務(wù)鎖沖突,若不沖突,則執(zhí)行所述后置任務(wù),否則跳過所述后置任務(wù); 置換參數(shù)模塊,用于若執(zhí)行后置任務(wù),則執(zhí)行所述后置任務(wù)前,置換任務(wù)運(yùn)行命令中的參數(shù),向任務(wù)調(diào)度運(yùn)行結(jié)果表插入調(diào)度記錄,并將執(zhí)行狀態(tài)初始為正在運(yùn)行; 任務(wù)運(yùn)行模塊,用于運(yùn)行所述后置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的任務(wù)運(yùn)行命令; 任務(wù)重調(diào)度模塊,用于等待所述任務(wù)運(yùn)行命令的返回結(jié)果,如果成功,則將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行成功,并返回;如果運(yùn)行失敗,結(jié)合任務(wù)調(diào)度定義表中的失敗重調(diào)度參數(shù),修改任務(wù)運(yùn)行命令,并重新提交工作線程調(diào)度;如果失敗次數(shù)超過任務(wù)調(diào)度定義表中的失敗重調(diào)度次數(shù),將任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài)修改為執(zhí)行失敗,并返回。
17.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于 所述啟動(dòng)模塊根據(jù)線程池個(gè)數(shù)n,并發(fā)啟動(dòng)η個(gè)工作線程; 所述掃描模塊根據(jù)間隔掃描時(shí)間m,每隔時(shí)間m運(yùn)行掃描線程。
18.根據(jù)權(quán)利要求14所述的系統(tǒng),其特征在于,還包括 監(jiān)控模塊,用于掃描任務(wù)調(diào)度運(yùn)行結(jié)果表,發(fā)送失敗任務(wù)、超時(shí)任務(wù)和/或定時(shí)超時(shí)任務(wù)的對應(yīng)命令。
全文摘要
本發(fā)明提供了一種任務(wù)調(diào)度方法及系統(tǒng),以解決任務(wù)調(diào)度中系統(tǒng)的局限性的問題。所述的方法包括首先提取調(diào)度定時(shí)時(shí)間到期的任務(wù),然后設(shè)定所述任務(wù)為后置任務(wù),通過所述后置任務(wù)的任務(wù)調(diào)度依賴維表計(jì)算前置任務(wù)的計(jì)劃執(zhí)行時(shí)間,并且從所述任務(wù)調(diào)度依賴維表讀取前置任務(wù)的任務(wù)序號,然后通過前置任務(wù)的任務(wù)序號和計(jì)劃執(zhí)行時(shí)間查找前置任務(wù)的任務(wù)調(diào)度運(yùn)行結(jié)果表中的執(zhí)行狀態(tài),若為執(zhí)行成功,則將所述后置任務(wù)放置到任務(wù)隊(duì)列中,等待調(diào)度執(zhí)行。本發(fā)明所述的方法在各種情況下,只要確定了后置任務(wù)就能找到前置任務(wù),確定前置任務(wù)執(zhí)行成功了就可以執(zhí)行后置任務(wù),使得任務(wù)調(diào)度系統(tǒng)更加完善??s短調(diào)度時(shí)間,提高調(diào)度效率,減少了錯(cuò)誤率。
文檔編號G06F9/48GK102981904SQ201110259129
公開日2013年3月20日 申請日期2011年9月2日 優(yōu)先權(quán)日2011年9月2日
發(fā)明者喬平 申請人:阿里巴巴集團(tuán)控股有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1