專利名稱:一種多任務(wù)處理方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種多任務(wù)處理技術(shù)。
背景技術(shù):
兩個(gè)或以上不同的應(yīng)用程序運(yùn)行稱為多任務(wù)處理,每個(gè)應(yīng)用程序被稱作一 項(xiàng)任務(wù)。進(jìn)程是任務(wù)的執(zhí)行實(shí)體, 一項(xiàng)任務(wù)往往需要由若干個(gè)進(jìn)程共同完成, 進(jìn)程是若干指令在一定環(huán)境下對(duì)數(shù)據(jù)集合的動(dòng)態(tài)執(zhí)行過(guò)程,每個(gè)進(jìn)程的運(yùn)行可 以看作執(zhí)行該項(xiàng)任務(wù)所包括的 一個(gè)子任務(wù)。任務(wù)執(zhí)行結(jié)果的 一種表現(xiàn)形式是生 成一張才詠。隨著任務(wù)的復(fù)雜性越來(lái)越高,為了生成一張報(bào)表一般需要從多個(gè) 數(shù)據(jù)源獲取數(shù)據(jù)然后運(yùn)行多個(gè)進(jìn)程才可以完成,并且不同任務(wù)之間的進(jìn)程往往 也是有關(guān)聯(lián)的。
現(xiàn)有技術(shù)中,如果一項(xiàng)任務(wù)由若干個(gè)子任務(wù)組成,則每個(gè)子任務(wù)都是一個(gè) 獨(dú)立的邏輯單元, 一項(xiàng)任務(wù)所包括的各子任務(wù)按照順序獨(dú)立執(zhí)行,各子任務(wù)都 執(zhí)行完畢,該項(xiàng)任務(wù)才執(zhí)行完成。現(xiàn)有技術(shù)中,僅實(shí)現(xiàn)了對(duì)單項(xiàng)任務(wù)的管理功 能,無(wú)法管理一項(xiàng)任務(wù)所包括的子任務(wù)(進(jìn)程)需要關(guān)聯(lián)其它任務(wù)所包括的子 任務(wù)(進(jìn)程)的情況。
發(fā)明內(nèi)容
本發(fā)明提供一種多任務(wù)處理方法及裝置,用以解決現(xiàn)有4支術(shù)中存在的一項(xiàng)
本發(fā)明提供的多任務(wù)處理方法,包括
實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,所述多任務(wù)列表記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的 狀態(tài)和執(zhí)行條件;當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí)行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí), 控制所述子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。
本發(fā)明提供的多任務(wù)處理裝置,包括存儲(chǔ)模塊、監(jiān)測(cè)模塊和處理模塊,其
中
所述存儲(chǔ)模塊,用于存儲(chǔ)多任務(wù)列表,所述多任務(wù)列表記錄每一項(xiàng)任務(wù)所
包括各子任務(wù)的狀態(tài)和執(zhí)行條件;
所述監(jiān)測(cè)模塊,用于實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,并當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí) 行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí)觸發(fā)所述處理模塊; 所述處理模塊,用于控制所述子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。 本發(fā)明提供的多任務(wù)處理方法及裝置,預(yù)先設(shè)置多任務(wù)列表,多任務(wù)列表 中記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的狀態(tài)和執(zhí)行條件,實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表, 當(dāng)發(fā)現(xiàn)存在滿足執(zhí)行條件的子任務(wù)時(shí),控制該子任務(wù)在4丸行節(jié)點(diǎn)上運(yùn)行。通過(guò) 多任務(wù)列表中每個(gè)子任務(wù)的狀態(tài)和執(zhí)行條件可以關(guān)聯(lián)一項(xiàng)任務(wù)所包括的子任 務(wù)與其它任務(wù)所包括的子任務(wù),實(shí)現(xiàn)了多任務(wù)之間的協(xié)調(diào)調(diào)度。
圖1為本發(fā)明實(shí)施例中多任務(wù)處理方法流程圖2為本發(fā)明實(shí)施例中多任務(wù)處理裝置結(jié)構(gòu)框圖3為本發(fā)明實(shí)施例中監(jiān)測(cè)模塊的一種可能結(jié)構(gòu)框圖4為本發(fā)明實(shí)施例中"包月費(fèi)分?jǐn)?,,子任?wù)的處理流程圖5為本發(fā)明實(shí)施例中"當(dāng)月欠費(fèi)導(dǎo)入,,子任務(wù)的處理流程圖。
具體實(shí)施例方式
本發(fā)明實(shí)施例提供一種多任務(wù)處理方法及裝置,用以解決現(xiàn)有:^支術(shù)中存在 任務(wù)之間的協(xié)調(diào)調(diào)度。
6下面將結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)闡述。
如圖l所示,本發(fā)明實(shí)施例提供的多任務(wù)處理方法,包括
5101、 實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,其中多任務(wù)列表記錄每一項(xiàng)任務(wù)所包括各子 任務(wù)的狀態(tài)和執(zhí)行條件;
5102、 當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí)行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任 務(wù)時(shí),控制該子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。
各子任務(wù)的狀態(tài)包括未執(zhí)行狀態(tài)、正在執(zhí)行狀態(tài)、執(zhí)行成功狀態(tài)和執(zhí)行失 敗狀態(tài),其中
子任務(wù)的初始狀態(tài)為未執(zhí)行狀態(tài);
當(dāng)子任務(wù)開(kāi)始在執(zhí)行節(jié)點(diǎn)上運(yùn)行時(shí),該子任務(wù)的狀態(tài)由未執(zhí)行狀態(tài)更新為 正在執(zhí)^t狀態(tài);
當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行成功之后,該子任務(wù)的狀態(tài)由正在^丸行狀態(tài)更 新為才丸4于成功狀態(tài);
當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行失敗之后,該子任務(wù)的狀態(tài)由正在執(zhí)行狀態(tài)更 新為扭^于失敗狀態(tài)。
較佳的,各子任務(wù)的執(zhí)行條件包括執(zhí)行時(shí)間、以及設(shè)定有相關(guān)子任務(wù)及其 狀態(tài)的執(zhí)行依存關(guān)系,其中,每一個(gè)子任務(wù)的執(zhí)行依存關(guān)系根據(jù)該子任務(wù)與其 它子任務(wù)的關(guān)聯(lián)進(jìn)行配置。
基于上述各子任務(wù)的狀態(tài)和執(zhí)行條件,子任務(wù)滿足執(zhí)行條件具體是指子 任務(wù)的狀態(tài)為未執(zhí)行狀態(tài)、當(dāng)前時(shí)間滿足子任務(wù)的執(zhí)行時(shí)間,且沖艮捧子任務(wù)的 執(zhí)行依存關(guān)系相關(guān)子任務(wù)滿足設(shè)定的狀態(tài),則判定該子任務(wù)滿足執(zhí)行條件。
如果多項(xiàng)任務(wù)所包括的各子任務(wù)對(duì)執(zhí)行時(shí)間沒(méi)有嚴(yán)格要求,則子任務(wù)的執(zhí)
行條件中也可以不包括執(zhí)行時(shí)間,而只包括設(shè)定有相關(guān)子任務(wù)及其狀態(tài)的執(zhí)行 依存關(guān)系,即只限定各子任務(wù)之間執(zhí)行的依存關(guān)系。
較佳的,為了提高多任務(wù)處理的容錯(cuò)能力,本發(fā)明實(shí)施例還提供出錯(cuò)重處 理機(jī)制,預(yù)先配置失敗重試間隔和最大重試次數(shù),并且多任務(wù)列表還記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的重試次數(shù),對(duì)于執(zhí)行失敗狀態(tài)的子任務(wù),還包括如下
處理步驟
根據(jù)配置的失敗重試間隔,控制執(zhí)行失敗狀態(tài)的子任務(wù)在執(zhí)行節(jié)點(diǎn)上重復(fù) 運(yùn)行,并更新多任務(wù)列表中記錄的該子任務(wù)的重試次數(shù),直至運(yùn)行成功或者達(dá) 到配置的最大重試次數(shù)。
如果執(zhí)行失敗狀態(tài)的子任務(wù)通過(guò)若干次重復(fù)運(yùn)行,最終運(yùn)行成功,則達(dá)到 了提高多任務(wù)處理容錯(cuò)能力的目的,如果^l行失敗狀態(tài)的子任務(wù)通過(guò)若干次重 復(fù)運(yùn)行達(dá)到配置的最大重試次數(shù),則該方法還可包括
上報(bào)多任務(wù)處理失敗的告警消息,并且攜帶該執(zhí)行失敗狀態(tài)的子任務(wù)的信 息,例如子任務(wù)的名稱、標(biāo)識(shí)、或者編號(hào),等等。
通過(guò)上報(bào)告警消息,可以實(shí)時(shí)上報(bào)多任務(wù)處理失敗,從而及時(shí)進(jìn)行故障排 除,并且為故障定位提供有效依據(jù)。
更進(jìn)一步,如果多任務(wù)處理過(guò)程中待處理任務(wù)較多,則需同時(shí)處理的子任 務(wù)就比較多,本發(fā)明實(shí)施例中設(shè)置至少兩個(gè)執(zhí)行節(jié)點(diǎn),用于運(yùn)行各子任務(wù),并 且對(duì)各執(zhí)行節(jié)點(diǎn)采取了負(fù)載均衡的處理機(jī)制,具體包括
當(dāng)監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí),根據(jù)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在 運(yùn)行子任務(wù)的數(shù)量,控該子任務(wù)在當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn) 上運(yùn)行。
本發(fā)明實(shí)施例中,實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,每當(dāng)監(jiān)測(cè)到滿足執(zhí)行條件的子任 務(wù)時(shí),控制執(zhí)行節(jié)點(diǎn)運(yùn)行該子任務(wù),如果多任務(wù)列表中每一項(xiàng)任務(wù)所包括的各 子任務(wù)全部運(yùn)行成功,則最終該多任務(wù)處理運(yùn)行成功,可以生成各項(xiàng)任務(wù)的報(bào) 表;而如果某個(gè)子任務(wù)多次運(yùn)行失敗,達(dá)到了最大重試次^t,導(dǎo)致上報(bào)告警信 息,則整個(gè)多任務(wù)處理運(yùn)行失敗,流程中止。
基于同一技術(shù)構(gòu)思,本發(fā)明實(shí)施例提供一種多任務(wù)處理裝置,如圖2所示, 包括存儲(chǔ)模塊201、監(jiān)測(cè)模塊202和處理模塊203,其中
存儲(chǔ)模塊201,用于存儲(chǔ)多任務(wù)列表,其中多任務(wù)列表記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的狀態(tài)和執(zhí)行條件;
監(jiān)測(cè)模塊202,用于實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,并當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí) 行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí)觸發(fā)處理^^莫塊203;
處理模塊203,用于控制該子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。
其中,子任務(wù)的狀態(tài)包括未執(zhí)行狀態(tài)、正在執(zhí)行狀態(tài)、執(zhí)行成功狀態(tài)和執(zhí) 行失敗狀態(tài),則
處理模塊203,還用于將子任務(wù)的初始狀態(tài)設(shè)置為未執(zhí)行狀態(tài),當(dāng)子任務(wù) 開(kāi)始在執(zhí)行節(jié)點(diǎn)上運(yùn)行時(shí),將該子任務(wù)的狀態(tài)由未執(zhí)行狀態(tài)更新為正在執(zhí)行狀 態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行成功之后,將該子任務(wù)的狀態(tài)由正在執(zhí)行狀態(tài) 更新為執(zhí)行成功狀態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行失敗之后,將該子任務(wù)的狀 態(tài)由正在執(zhí)行狀態(tài)更新為執(zhí)行失敗狀態(tài)。
較佳的,執(zhí)行條件包括執(zhí)行時(shí)間、以及設(shè)定有相關(guān)子任務(wù)及其狀態(tài)的執(zhí)行 依存關(guān)系,則根據(jù)上述子任務(wù)的狀態(tài)和執(zhí)行條件,監(jiān)測(cè)模塊202的一種可能結(jié) 構(gòu),如圖3所示,包括實(shí)時(shí)監(jiān)測(cè)單元301和判定單元302,其中
實(shí)時(shí)JI1測(cè)單元301,用于實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表;
判^子車元302,用于在子任務(wù)的狀態(tài)為未執(zhí)行狀態(tài)、當(dāng)前時(shí)間滿足子任 務(wù)的執(zhí)行時(shí)間,且根據(jù)子任務(wù)的執(zhí)行依存關(guān)系相關(guān)子任務(wù)滿足設(shè)定的狀態(tài)時(shí), 觸發(fā)處理模塊203。
較佳的,多任務(wù)列表還記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的重試次數(shù),處理 模塊203,還用于4艮據(jù)配置的失敗重試間隔,控制4丸行失敗狀態(tài)的子任務(wù)在凈丸 行節(jié)點(diǎn)上重復(fù)運(yùn)行,并更新多任務(wù)列表中記錄的重試次數(shù),直至運(yùn)行成功或者 達(dá)到配置的最大重試次數(shù)。
較佳的,該多任務(wù)處理裝置還可包括告警模塊204,其中
處理模塊203,還用于在執(zhí)行失敗狀態(tài)的子任務(wù)達(dá)到配置的最大重試次數(shù) 時(shí)觸發(fā)告警模塊204;
告警模塊204,用于上報(bào)多任務(wù)處理失敗的告警消息,并且攜帶該執(zhí)行失敗狀態(tài)的子任務(wù)的信息。
該多任務(wù)處理裝置還可包括
監(jiān)控維護(hù)模塊205,用于監(jiān)控各子任務(wù)的狀態(tài),根據(jù)用戶的查詢請(qǐng)求從存 儲(chǔ)單元201中獲取每一種狀態(tài)的子任務(wù)數(shù)量并返回給該用戶,以及向處理模塊 203上報(bào)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量。
為了實(shí)現(xiàn)各子任務(wù)在至少兩個(gè)執(zhí)行節(jié)點(diǎn)上的負(fù)載均衡,處理模塊203,用 于根據(jù)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量,控制滿足執(zhí)行條件的子 任務(wù)在當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn)上運(yùn)行。
下面以移動(dòng)通信系統(tǒng)的定期出賬為例說(shuō)明本發(fā)明實(shí)施例提供的多任務(wù)處 理方案。定期出賬需要執(zhí)行"出賬處理,,和"欠費(fèi)處理"兩項(xiàng)任務(wù),其中"出 賬處理"包括"生成同步賬單"、"生成中間賬單"、"包月費(fèi)分?jǐn)?、"生成結(jié)果 集,,四個(gè)子任務(wù),每個(gè)子任務(wù)通過(guò)獨(dú)立的進(jìn)程實(shí)現(xiàn),"出賬處理"所包括的各 子任務(wù)需按照"生成同步賬單"、"生成中間賬單"、"包月費(fèi)分?jǐn)?、"生成結(jié)果 集"的順序依次執(zhí)行。"欠費(fèi)處理,,包括"歷史欠費(fèi)賬單備份"、"歷史欠費(fèi)分 賬齡"、"當(dāng)月欠費(fèi)導(dǎo)入"三個(gè)子任務(wù),"欠費(fèi)處理"所包括的各子任務(wù)需按照 "歷史欠費(fèi)賬單備份"、"歷史欠費(fèi)分賬齡"、"當(dāng)月欠費(fèi)導(dǎo)入"的順序依次執(zhí)行, 并且"當(dāng)月欠費(fèi)導(dǎo)入"的執(zhí)行需要依存"出賬處理"所包括的"生成中間賬單" 子任務(wù)的成功執(zhí)行。則預(yù)先在存儲(chǔ)單元中存儲(chǔ)多任務(wù)列表,多任務(wù)列表記錄每 一項(xiàng)任務(wù)所包括各子任務(wù)的狀態(tài)和執(zhí)行條件,即"出賬處理"和"欠費(fèi)處理" 兩項(xiàng)任務(wù)所包括的各子任務(wù)的狀態(tài)和執(zhí)行條件,執(zhí)行條件包括執(zhí)行時(shí)間、以及 設(shè)定有相關(guān)子任務(wù)及其狀態(tài)的執(zhí)行依存關(guān)系。例如針對(duì)"出賬處理"所包括的 子任務(wù)"包月費(fèi)分?jǐn)?,設(shè)置其執(zhí)行條件為每月的3日3:00或者晚于該時(shí)間, 且設(shè)置執(zhí)行依存關(guān)系為"生成中間賬單"的狀態(tài)是執(zhí)行成功狀態(tài);針對(duì)"欠費(fèi) 處理"所包括的子任務(wù)"當(dāng)月欠費(fèi)導(dǎo)入,,,設(shè)置其4丸行條件為每月的3日3: 30 或者晚于該時(shí)間,且i殳置執(zhí)行依存關(guān)系為"生成中間賬單"和"歷史欠費(fèi)分賬 齡"的狀態(tài)均為執(zhí)行成功狀態(tài)。下面分別以"出賬處理,,所包括的子任務(wù)"包月費(fèi)分?jǐn)?的處理流程和"欠 費(fèi)處理,,所包括的子任務(wù)"當(dāng)月欠費(fèi)導(dǎo)入"的處理流程為例進(jìn)行詳細(xì)說(shuō)明。
"出賬處理,,所包括的子任務(wù)"包月費(fèi)分?jǐn)?的處理流程,如圖4所示,
包括步驟
5400、 監(jiān)測(cè)模塊實(shí)時(shí)監(jiān)測(cè)存儲(chǔ)模塊中存儲(chǔ)的多任務(wù)列表;
5401、 監(jiān)測(cè)模塊監(jiān)測(cè)到當(dāng)前時(shí)間是3日3:00或者晚于該時(shí)間,即滿足"包 月費(fèi)分?jǐn)?的執(zhí)行時(shí)間,且"包月費(fèi)分?jǐn)?的狀態(tài)為未執(zhí)行狀態(tài),則繼續(xù)執(zhí)行 S402;
需要指出的是,監(jiān)測(cè)模塊將一直實(shí)時(shí)監(jiān)測(cè)是否有滿足執(zhí)行條件的子任務(wù), 本實(shí)施例僅以"包月費(fèi)分?jǐn)?子任務(wù)的處理流程為例進(jìn)行說(shuō)明,對(duì)其它子任務(wù) 不再贅述;
5402、 監(jiān)測(cè)模塊判斷"出賬處理"任務(wù)中執(zhí)行順序在"包月費(fèi)分?jǐn)?子任 務(wù)之前的"生成中間賬單"子任務(wù)的狀態(tài)是否為執(zhí)行成功狀態(tài),如杲是,則執(zhí) 行S403,如果否,則返回執(zhí)行S400;
5403、 監(jiān)測(cè)模塊觸發(fā)處理模塊,處理模塊按照負(fù)載均衡的原則控制"包月 費(fèi)分?jǐn)?子任務(wù)在當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn)上運(yùn)行,同時(shí)在 多任務(wù)列表中將"包月費(fèi)分?jǐn)偅?,子任?wù)的狀態(tài)由未執(zhí)行狀態(tài)更新為正在執(zhí)行狀
態(tài);
5404、 處理模塊判斷"包月費(fèi)分?jǐn)?子任務(wù)在執(zhí)行節(jié)點(diǎn)上是否運(yùn)行成功, 如果是,則繼續(xù)執(zhí)行S405,如果由于系統(tǒng)繁忙等原因"包月費(fèi)分?jǐn)?子任務(wù)在 執(zhí)行節(jié)點(diǎn)上運(yùn)行失敗,則執(zhí)行S406;
5405、 處理模塊在多任務(wù)列表中將"包月費(fèi)分?jǐn)?子任務(wù)的狀態(tài)由正在執(zhí) 行狀態(tài)更新為執(zhí)行成功狀態(tài),并將該子任務(wù)的運(yùn)行程序在執(zhí)行節(jié)點(diǎn)上正常退 出;
至此"包月費(fèi)分求偉"子任務(wù)已成功完成,為其后續(xù)各子任務(wù)的執(zhí)行打下基
礎(chǔ);5406、 處理模塊在多任務(wù)列表中將"包月費(fèi)分?jǐn)?,,子任?wù)的狀態(tài)由正在執(zhí) 行狀態(tài)更新為執(zhí)行失敗狀態(tài);
5407、 處理模塊根據(jù)配置的失敗重試間隔,在經(jīng)過(guò)失敗重試間隔規(guī)定的時(shí) 間段之后,在多任務(wù)列表中將"包月費(fèi)分?jǐn)?子任務(wù)的重試次數(shù)加l;
5408、 處理模塊判斷"包月費(fèi)分?jǐn)?子任務(wù)的重試次I^A否達(dá)到配置的最 大重試次數(shù),如果是,則執(zhí)行S409,如果否,則返回執(zhí)行S403;
5409、 處理模塊觸發(fā)告警模塊,告警模塊上報(bào)多任務(wù)處理失敗的告警消息; 至此,整個(gè)多任務(wù)處理流程由于"包月費(fèi)分?jǐn)?,,子任?wù)未能成功運(yùn)行而結(jié)
束(中止)。
"欠費(fèi)處理"所包括的子任務(wù)"當(dāng)月欠費(fèi)導(dǎo)入"的處理流程,如圖5所示, 包括步驟
5500、 監(jiān)測(cè)模塊實(shí)時(shí)監(jiān)測(cè)存儲(chǔ)模塊中存儲(chǔ)的多任務(wù)列表;
5501、 監(jiān)測(cè)模塊監(jiān)測(cè)到當(dāng)前時(shí)間是3日3:30或者晚于該時(shí)間,即滿足"當(dāng) 月欠費(fèi)導(dǎo)入"的執(zhí)行時(shí)間,且"當(dāng)月欠費(fèi)導(dǎo)入"的狀態(tài)為未執(zhí)行狀態(tài),則繼續(xù) 執(zhí)行S502;
需要指出的是,監(jiān)測(cè)模塊將一直實(shí)時(shí)監(jiān)測(cè)是否有滿足執(zhí)行條件的子任務(wù), 本實(shí)施例僅以"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)的處理流程為例進(jìn)行說(shuō)明,對(duì)其它子任 務(wù)不再贅述;
5502、 監(jiān)測(cè)模塊判斷"欠費(fèi)處理"任務(wù)中執(zhí)行順序在"當(dāng)月欠費(fèi)導(dǎo)入"子 任務(wù)之前的"歷史欠費(fèi)分賬齡"子任務(wù)的狀態(tài)以及"出賬處理"任務(wù)所包括的
"生成中間賬單"子任務(wù)的狀態(tài)是否均為執(zhí)行成功狀態(tài),如果是,則執(zhí)行S503, 如果否,則返回執(zhí)4亍S500;
5503、 監(jiān)測(cè)模塊觸發(fā)處理模塊,處理模塊按照負(fù)載均衡的原則控制"當(dāng)月 欠費(fèi)導(dǎo)入"子任務(wù)在當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn)上運(yùn)行,同時(shí) 在多任務(wù)列表中將"當(dāng)月欠費(fèi)導(dǎo)入,,子任務(wù)的狀態(tài)由未執(zhí)^f亍狀態(tài)更新為正在執(zhí) 行狀態(tài);5504、 處理模塊判斷"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)在執(zhí)行節(jié)點(diǎn)上是否運(yùn)行成功, 如果是,則繼續(xù)執(zhí)行S505,如果由于系統(tǒng)繁忙等原因"當(dāng)月欠費(fèi)導(dǎo)入,,子任務(wù) 在扭4行節(jié)點(diǎn)上運(yùn)行失敗,則拍^于S506;
5505、 處理模塊在多任務(wù)列表中將"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)的狀態(tài)由正在 執(zhí)行狀態(tài)更新為執(zhí)行成功狀態(tài),并將該子任務(wù)的運(yùn)行程序在執(zhí)行節(jié)點(diǎn)上正常退 出;
至此"當(dāng)月欠費(fèi)導(dǎo)入,,子任務(wù)成功完成,為其后續(xù)各子任務(wù)的執(zhí)行打下基
礎(chǔ);
5506、 處理模塊在多任務(wù)列表中將"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)的狀態(tài)由正在 執(zhí)行狀態(tài)更新為執(zhí)行失敗狀態(tài);
5507、 處理模塊根據(jù)配置的失敗重試間隔,在經(jīng)過(guò)失敗重試間隔規(guī)定的時(shí) 間段之后,在多任務(wù)列表中將"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)的重試次數(shù)加l;
5508、 處理模塊判斷"當(dāng)月欠費(fèi)導(dǎo)入,,子任務(wù)的重試次數(shù)是否達(dá)到設(shè)置的 最大重試次數(shù),如果是,則執(zhí)行S509,如果否,則返回執(zhí)行S503;
5509、 處理模塊觸發(fā)告警模塊,告警模塊上報(bào)多任務(wù)處理失敗的告警消息; 至此,整個(gè)多任務(wù)處理流程由于"當(dāng)月欠費(fèi)導(dǎo)入"子任務(wù)未能成功運(yùn)行而
結(jié)束(中止)。
本發(fā)明實(shí)施例提供的多任務(wù)處理方法及裝置,提高了多任務(wù)處理的可維護(hù) 性和容錯(cuò)能力,解決了多任務(wù)之間的協(xié)調(diào)調(diào)度和出錯(cuò)重處理問(wèn)題,實(shí)現(xiàn)了多個(gè) 執(zhí)行節(jié)點(diǎn)的負(fù)載均衡。
明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及 其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1、一種多任務(wù)處理方法,其特征在于,包括實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,所述多任務(wù)列表記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的狀態(tài)和執(zhí)行條件;當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí)行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí),控制所述子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。
2、 如權(quán)利要求1所述的方法,其特征在于,所述子任務(wù)的狀態(tài)包括未執(zhí) 行狀態(tài)、正在執(zhí)行狀態(tài)、執(zhí)行成功狀態(tài)和執(zhí)行失敗狀態(tài);所述執(zhí)行條件包括執(zhí) 行時(shí)間、以及設(shè)定有相關(guān)子任務(wù)及其狀態(tài)的執(zhí)行依存關(guān)系;所述滿足執(zhí)行條件包括子任務(wù)的狀態(tài)為未執(zhí)行狀態(tài)、當(dāng)前時(shí)間滿足子任務(wù)的執(zhí)行時(shí)間,且根據(jù)子 任務(wù)的執(zhí)行依存關(guān)系所述相關(guān)子任務(wù)滿足設(shè)定的狀態(tài)。
3、 如權(quán)利要求2所述的方法,其特征在于, 子任務(wù)的初始狀態(tài)為未執(zhí)行狀態(tài);當(dāng)子任務(wù)開(kāi)始在執(zhí)行節(jié)點(diǎn)上運(yùn)行時(shí),該子任務(wù)的狀態(tài)由未執(zhí)行狀態(tài)更新為 正在執(zhí)行狀態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行成功之后,該子任務(wù)的狀態(tài)由正在執(zhí)行狀態(tài)更 新為執(zhí)行成功狀態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行失敗之后,該子任務(wù)的狀態(tài)由正在執(zhí)行狀態(tài)更 新為執(zhí)行失敗狀態(tài)。
4、 如權(quán)利要求3所述的方法,其特征在于,所述多任務(wù)列表還記錄每一 項(xiàng)任務(wù)所包括各子任務(wù)的重試次數(shù),以及所述方法還包括根據(jù)配置的失敗重試間隔,控制執(zhí)行失敗狀態(tài)的子任務(wù)在執(zhí)行節(jié)點(diǎn)上重復(fù) 運(yùn)行,并更新多任務(wù)列表中記錄的該子任務(wù)的重試次數(shù),直至運(yùn)行成功或者達(dá) 到配置的最大重試次數(shù)。
5、 如權(quán)利要求4所述的方法,其特征在于,還包括如果執(zhí)行失敗狀態(tài)的子任務(wù)達(dá)到配置的最大重試次H則上報(bào)多任務(wù)處理 失敗的告警消息,并且攜帶該執(zhí)行失敗狀態(tài)的子任務(wù)的信息。
6、 如權(quán)利要求1至5任一所述的方法,其特征在于,所述執(zhí)行節(jié)點(diǎn)包括至少兩個(gè);以及所述控制子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行,具體包括根據(jù)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量,控制所述子任務(wù)在當(dāng) 前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn)上運(yùn)行。
7、 一種多任務(wù)處理裝置,其特征在于,包括存^f渚才莫塊、監(jiān)測(cè)模塊和處理 模塊,其中所述存儲(chǔ)模塊,用于存儲(chǔ)多任務(wù)列表,所述多任務(wù)列表記錄每一項(xiàng)任務(wù)所 包括各子任務(wù)的狀態(tài)和執(zhí)行條件;所述監(jiān)測(cè)模塊,用于實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,并當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí) 行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí)觸發(fā)所述處理模塊;所述處理模塊,用于控制所述子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。
8、 如權(quán)利要求7所述的裝置,其特征在于,所述子任務(wù)的狀態(tài)包括未執(zhí) 行狀態(tài)、正在執(zhí)行狀態(tài)、執(zhí)行成功狀態(tài)和執(zhí)行失敗狀態(tài);所述執(zhí)行條件包括執(zhí) 行時(shí)間、以及設(shè)定有相關(guān)子任務(wù)及其狀態(tài)的執(zhí)行依存關(guān)系;以及所述監(jiān)測(cè)^^莫塊包括實(shí)時(shí)監(jiān)測(cè)單元和判定單元,其中 所述實(shí)時(shí)監(jiān)測(cè)單元,用于實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表;所述判定單元,用于在子任務(wù)的狀態(tài)為未執(zhí)行狀態(tài)、當(dāng)前時(shí)間滿足子任務(wù) 的執(zhí)行時(shí)間,且根據(jù)子任務(wù)的執(zhí)行依存關(guān)系所述相關(guān)子任務(wù)滿足設(shè)定的狀態(tài) 時(shí),觸發(fā)所述處理;溪塊。
9、 如權(quán)利要求8所述的裝置,其特征在于,所述處理才莫塊,還用于將子任務(wù)的初始狀態(tài)設(shè)置為未才丸行狀態(tài),當(dāng)子任務(wù) 開(kāi)始在執(zhí)行節(jié)點(diǎn)上運(yùn)行時(shí),將該子任務(wù)的狀態(tài)由未執(zhí)行狀態(tài)更新為正在執(zhí)行狀 態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行成功之后,將該子任務(wù)的狀態(tài)由正在執(zhí)行狀態(tài)更新為執(zhí)行成功狀態(tài);當(dāng)子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行失敗之后,將該子任務(wù)的狀 態(tài)由正在執(zhí)行狀態(tài)更新為執(zhí)行失敗狀態(tài)。
10、 如權(quán)利要求9所述的裝置,其特征在于,所述多任務(wù)列表還記錄每一 項(xiàng)任務(wù)所包括各子任務(wù)的重試次數(shù);以及所述處理模塊,還用于根據(jù)配置的失敗重試間隔,控制執(zhí)行失敗狀態(tài)的子 任務(wù)在執(zhí)行節(jié)點(diǎn)上重復(fù)運(yùn)行,并更新多任務(wù)列表中記錄的該子任務(wù)的重試次 數(shù),直至運(yùn)行成功或者達(dá)到配置的最大重試次數(shù)。
11、 如權(quán)利要求IO所述的裝置,其特征在于,還包括告警模塊,其中 所述處理模塊,還用于在執(zhí)行失敗狀態(tài)的子任務(wù)達(dá)到配置的最大重試次數(shù)時(shí),觸發(fā)所述告警模塊;所述告警模塊,用于上報(bào)多任務(wù)處理失敗的告警消息,并且攜帶該執(zhí)行失 敗狀態(tài)的子任務(wù)的信息。
12、 權(quán)利要求ll所述的裝置,其特征在于,還包括 監(jiān)控維護(hù)模塊,用于監(jiān)控各子任務(wù)的狀態(tài),根據(jù)用戶的查詢請(qǐng)求從所述存儲(chǔ)模塊中獲取每一種狀態(tài)的子任務(wù)數(shù)量并返回給所述用戶,以及向所述處理模 塊上報(bào)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量。
13、 如權(quán)利要求7至12任一所述的裝置,其特征在于, 所述處理模塊,用于根據(jù)每一個(gè)執(zhí)行節(jié)點(diǎn)上當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量,控制所述子任務(wù)在當(dāng)前正在運(yùn)行子任務(wù)的數(shù)量最少的執(zhí)行節(jié)點(diǎn)上運(yùn)行,所述執(zhí) 行節(jié)點(diǎn)包括至少兩個(gè)。
全文摘要
本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種多任務(wù)處理技術(shù)。本發(fā)明公開(kāi)了一種多任務(wù)處理方法及裝置,用以解決現(xiàn)有技術(shù)中存在的一項(xiàng)任務(wù)所包括的子任務(wù)無(wú)法關(guān)聯(lián)其它任務(wù)所包括的子任務(wù)的問(wèn)題。所述多任務(wù)處理方法,包括實(shí)時(shí)監(jiān)測(cè)多任務(wù)列表,所述多任務(wù)列表記錄每一項(xiàng)任務(wù)所包括各子任務(wù)的狀態(tài)和執(zhí)行條件;當(dāng)根據(jù)各子任務(wù)的狀態(tài)和執(zhí)行條件監(jiān)測(cè)到存在滿足執(zhí)行條件的子任務(wù)時(shí),控制所述子任務(wù)在執(zhí)行節(jié)點(diǎn)上運(yùn)行。本發(fā)明提供的多任務(wù)處理方法及裝置,實(shí)現(xiàn)了多任務(wù)之間的協(xié)調(diào)調(diào)度。
文檔編號(hào)G06F9/46GK101425024SQ20081022413
公開(kāi)日2009年5月6日 申請(qǐng)日期2008年10月24日 優(yōu)先權(quán)日2008年10月24日
發(fā)明者呂傳祝, 寇劍賓, 琳 王, 賈榮明 申請(qǐng)人:中國(guó)移動(dòng)通信集團(tuán)山東有限公司