一種任務(wù)管理方法及云數(shù)據(jù)中心管理平臺的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種任務(wù)管理方法及云數(shù)據(jù)中心管理平 臺。
【背景技術(shù)】
[0002] 隨著計算機技術(shù)的飛速發(fā)展,云計算逐步成為業(yè)界的聚焦點,各大企業(yè)已經(jīng)加入 了云計算的研究領(lǐng)域,并將云計算服務(wù)投入到科學(xué)、文化、教育、衛(wèi)生、政府、電子商務(wù)、高性 能計算、物聯(lián)網(wǎng)等多個領(lǐng)域進行使用。
[0003] 目前,云數(shù)據(jù)中心管理平臺通過創(chuàng)建線程池,以保證在接收到任務(wù)時,將該任務(wù)派 發(fā)到該線程池中執(zhí)行。
[0004] 然而,有一些任務(wù)在執(zhí)行時對于實時性的要求并不高,但是執(zhí)行時耗時較長,比 如,創(chuàng)建虛擬機、刪除虛擬機、重啟虛擬機、新建網(wǎng)絡(luò)等,只有在這些任務(wù)執(zhí)行結(jié)束后,即在 線程池空閑時才能夠繼續(xù)執(zhí)行后續(xù)的其他任務(wù),而后續(xù)所需執(zhí)行的該其他任務(wù)可能對實時 性具有一定要求,從而導(dǎo)致要求實時性的任務(wù)被耽擱,影響用戶體驗。
【發(fā)明內(nèi)容】
[0005] 有鑒于此,本發(fā)明提供一種任務(wù)管理方法及云數(shù)據(jù)中心管理平臺,以提高對實時 性有要求的任務(wù)的被執(zhí)行效率,提高用戶體驗。
[0006] 本發(fā)明提供了一種基于云數(shù)據(jù)中心管理平臺的任務(wù)管理方法,應(yīng)用于所述云數(shù)據(jù) 中心管理平臺的業(yè)務(wù)層,所述業(yè)務(wù)層根據(jù)預(yù)先配置的線程池的創(chuàng)建策略和線程池的屬性參 數(shù),分別針對云數(shù)據(jù)中心管理平臺中的每一個功能模塊,創(chuàng)建至少一個的線程池,其中,針 對同一個功能模塊創(chuàng)建的至少一個線程池中包括主線程池;還包括:
[0007] Sl :獲取針對目標(biāo)功能模塊的目標(biāo)任務(wù);
[0008] S2 :判斷是否存在對應(yīng)該目標(biāo)任務(wù)的線程池,若存在,將目標(biāo)任務(wù)調(diào)度給對應(yīng)該目 標(biāo)任務(wù)的線程池中執(zhí)行;若不存在,執(zhí)行S3 ;
[0009] S3:進一步判斷是否存在對應(yīng)該目標(biāo)任務(wù)所屬類型的線程池,若存在,將該目標(biāo)任 務(wù)調(diào)度給對應(yīng)該目標(biāo)任務(wù)所屬類型的線程池中執(zhí)行;若不存在,執(zhí)行S4 ;
[0010] S4 :將該目標(biāo)任務(wù)調(diào)度給主線程池中執(zhí)行。
[0011] 優(yōu)選地,所述將目標(biāo)任務(wù)調(diào)度給任意一個目標(biāo)線程池中執(zhí)行,包括:
[0012] 判斷該目標(biāo)線程池中是否包括空閑線程,若包括空閑線程,利用該空閑線程執(zhí)行 所述目標(biāo)任務(wù);若不包括空閑線程,繼續(xù)執(zhí)行下一步驟;
[0013] 判斷該目標(biāo)線程池中的線程數(shù)與第一預(yù)設(shè)線程數(shù)值、第二預(yù)設(shè)線程數(shù)值的關(guān)系; 其中,所述第一預(yù)設(shè)線程數(shù)值小于所述第二預(yù)設(shè)線程數(shù)值;
[0014] 在該目標(biāo)線程池中的線程數(shù)小于所述第一預(yù)設(shè)線程數(shù)值時,在該目標(biāo)線程池中新 建線程,并利用該新建線程執(zhí)行所述目標(biāo)任務(wù);
[0015] 在該目標(biāo)線程池中的線程數(shù)不小于所述第一預(yù)設(shè)線程數(shù)值時,且小于所述第二預(yù) 設(shè)線程數(shù)值時,進一步判斷緩沖隊列是否包括排隊空間,若包括,將所述目標(biāo)任務(wù)放入所述 緩沖隊列中,以使該目標(biāo)線程池中在包括空閑線程時,利用空閑線程執(zhí)行所述目標(biāo)任務(wù);若 不包括,則在該目標(biāo)線程池中新建線程,并利用該新建線程執(zhí)行所述目標(biāo)任務(wù);
[0016] 在該目標(biāo)線程池中的線程數(shù)等于所述第二預(yù)設(shè)線程數(shù)值時,拒絕對所述目標(biāo)任務(wù) 的處理。
[0017] 優(yōu)選地,所述將所述目標(biāo)任務(wù)放入所述緩沖隊列中,包括:
[0018] 確定所述目標(biāo)任務(wù)的執(zhí)行優(yōu)先級,以及根據(jù)確定的所述目標(biāo)任務(wù)的執(zhí)行優(yōu)先級, 將所述目標(biāo)任務(wù)放入所述緩沖隊列中,以使放入后所述緩沖隊列從入棧到出棧方向上按照 執(zhí)行優(yōu)先級從小到大的順序排列。
[0019] 優(yōu)選地,進一步包括:
[0020] 在任意一個目標(biāo)線程池中包括空閑線程時,且該空閑線程在設(shè)定時間段內(nèi)未被分 配到所需執(zhí)行的任務(wù)時,則銷毀該空閑線程。
[0021] 優(yōu)選地,
[0022] 進一步包括:在將目標(biāo)任務(wù)調(diào)度給任意一個目標(biāo)線程池中執(zhí)行的過程中,記錄所 述目標(biāo)任務(wù)被執(zhí)行的任務(wù)主體信息和任務(wù)事件信息,并將記錄的任務(wù)主體信息和任務(wù)事件 信息存儲到數(shù)據(jù)庫中;
[0023] 其中,所述任務(wù)主體信息包括:任務(wù)的唯一標(biāo)識、任務(wù)名稱、所屬功能模塊的名稱、 執(zhí)行狀態(tài)、任務(wù)體、任務(wù)創(chuàng)建時間、任務(wù)結(jié)束時間、任務(wù)執(zhí)行結(jié)果、執(zhí)行進度中的至少一個; 所述任務(wù)事件信息包括:任務(wù)被執(zhí)行過程中執(zhí)行到的每一個關(guān)鍵點的標(biāo)識、任務(wù)的唯一標(biāo) 識和對任務(wù)被執(zhí)行過程中執(zhí)行到的每一個關(guān)鍵點的說明;
[0024] 進一步包括:在云數(shù)據(jù)中心管理平臺發(fā)生中斷,且當(dāng)云數(shù)據(jù)中心管理平臺重啟之 后,根據(jù)數(shù)據(jù)庫中存儲的各個任務(wù)的任務(wù)主體信息和任務(wù)事件信息,對執(zhí)行未結(jié)束的任務(wù) 加載到相應(yīng)線程池中繼續(xù)執(zhí)行。
[0025] 本發(fā)明還提供了一種云數(shù)據(jù)中心管理平臺,包括:
[0026] 配置單元,用于配置的線程池的創(chuàng)建策略和線程池的屬性參數(shù);
[0027] 線程池創(chuàng)建單元,用于分別針對云數(shù)據(jù)中心管理平臺中的每一個功能模塊,創(chuàng)建 至少一個的線程池,其中,針對同一個功能模塊創(chuàng)建的至少一個線程池中包括主線程池;
[0028] 獲取單元,用于獲取針對目標(biāo)功能模塊的目標(biāo)任務(wù);
[0029] 第一判斷單元,用于判斷是否存在對應(yīng)該目標(biāo)任務(wù)的線程池,若存在,觸發(fā)調(diào)度單 元將目標(biāo)任務(wù)調(diào)度給對應(yīng)該目標(biāo)任務(wù)的線程池中執(zhí)行;若不存在,觸發(fā)第二判斷單元執(zhí)行 相應(yīng)操作;
[0030] 第二判斷單元,用于判斷是否存在對應(yīng)該目標(biāo)任務(wù)所屬類型的線程池,若存在,觸 發(fā)調(diào)度單元將該目標(biāo)任務(wù)調(diào)度給對應(yīng)該目標(biāo)任務(wù)所屬類型的線程池中執(zhí)行;若不存在,觸 發(fā)調(diào)度單元將該目標(biāo)任務(wù)調(diào)度給主線程池中執(zhí)行。
[0031] 優(yōu)選地,所述調(diào)度單元,用于判斷該目標(biāo)線程池中是否包括空閑線程,若包括空閑 線程,利用該空閑線程執(zhí)行所述目標(biāo)任務(wù);若不包括空閑線程,繼續(xù)判斷該目標(biāo)線程池中的 線程數(shù)與第一預(yù)設(shè)線程數(shù)值、第二預(yù)設(shè)線程數(shù)值的關(guān)系;其中,所述第一預(yù)設(shè)線程數(shù)值小于 所述第二預(yù)設(shè)線程數(shù)值;
[0032] 在該目標(biāo)線程池中的線程數(shù)小于所述第一預(yù)設(shè)線程數(shù)值時,在該目標(biāo)線程池中新 建線程,并利用該新建線程執(zhí)行所述目標(biāo)任務(wù);
[0033] 在該目標(biāo)線程池中的線程數(shù)不小于所述第一預(yù)設(shè)線程數(shù)值時,且小于所述第二預(yù) 設(shè)線程數(shù)值時,進一步判斷緩沖隊列是否包括排隊空間,若包括,將所述目標(biāo)任務(wù)放入所述 緩沖隊列中,以使該目標(biāo)線程池中在包括空閑線程時,利用空閑線程執(zhí)行所述目標(biāo)任務(wù);若 不包括,則在該目標(biāo)線程池中新建線程,并利用該新建線程執(zhí)行所述目標(biāo)任務(wù);
[0034] 在該目標(biāo)線程池中的線程數(shù)等于所述第二預(yù)設(shè)線程數(shù)值時,拒絕對所述目標(biāo)任務(wù) 的處理。
[0035] 優(yōu)選地,所述調(diào)度單元,用于確定所述目標(biāo)任務(wù)的執(zhí)行優(yōu)先級,以及根據(jù)確定的所 述目標(biāo)任務(wù)的執(zhí)行優(yōu)先級,將所述目標(biāo)任務(wù)放入所述緩沖隊列中,以使放入后所述緩沖隊 列從入棧到出棧方向上按照執(zhí)行優(yōu)先級從小到大的順序排列。
[0036] 優(yōu)選地,進一步包括:空閑線程銷毀單元,用于在任意一個目標(biāo)線程池中包括空閑 線程時,且該空閑線程在設(shè)定時間段內(nèi)未被分配到所需執(zhí)行的任務(wù)時,則銷毀該空閑線程。
[0037] 優(yōu)選地,
[0038] 進一步包括:記錄單元,用于在將目標(biāo)任務(wù)調(diào)度給任意一個目標(biāo)線程池中執(zhí)行的 過程中,記錄所述目標(biāo)任務(wù)被執(zhí)行的任務(wù)主體信息和任務(wù)事件信息,并將記錄的任務(wù)主體 信息和任務(wù)事件信息存儲到數(shù)據(jù)庫中;
[0039] 其中,所述任務(wù)主體信息包括:任務(wù)的唯一標(biāo)識、任務(wù)名稱、所屬功能模塊的名稱、 執(zhí)行狀態(tài)、任務(wù)體、任務(wù)創(chuàng)建時間、任務(wù)結(jié)束時間、任務(wù)執(zhí)行結(jié)果、執(zhí)行進度中的至少一個; 所述任務(wù)事件信息包括:任務(wù)被執(zhí)行過程中執(zhí)行到的每一個關(guān)鍵點的標(biāo)識、任務(wù)的唯一標(biāo) 識和對任務(wù)被執(zhí)行過程中執(zhí)行到的每一個關(guān)鍵點的說明;
[0040] 進一步包括:恢復(fù)單元,用于在云數(shù)據(jù)中心管理平臺發(fā)生中斷,且當(dāng)云數(shù)據(jù)中心管 理平臺重啟之后,根據(jù)數(shù)據(jù)庫中存儲的各個任務(wù)的任務(wù)主體信息和任務(wù)事件信息,恢復(fù)執(zhí) 行未結(jié)束的任務(wù),以觸發(fā)調(diào)度單元將執(zhí)行未結(jié)束的任務(wù)加載到相應(yīng)線程池中繼續(xù)執(zhí)行。
[0041] 本發(fā)明實施例提供了一種任務(wù)管理方法及云數(shù)據(jù)中心管理平臺,通過分別針對云 數(shù)據(jù)中心管理平臺中的每一個功能模塊,創(chuàng)建至少一個線程池,以保證在獲取到針對目標(biāo) 功能模塊的目標(biāo)任務(wù)時,若創(chuàng)建的至少一個線程池中包括對應(yīng)該目標(biāo)任務(wù)的線程池或者包 括對應(yīng)該目標(biāo)任務(wù)所屬類型的線程池,則可以將該目標(biāo)任務(wù)調(diào)度給相應(yīng)線程池中執(zhí)行,由 于是為每一個功能模塊創(chuàng)建了至少一個線程池,創(chuàng)建的該至少一個線程池只對相應(yīng)功能模 塊的任務(wù)進行執(zhí)行,從而可以減少任務(wù)執(zhí)行的等待時間,提高了用戶體驗。
【附圖說明】
[0042] 圖1是本發(fā)明實施例提供的方法流程圖;
[0043] 圖2是本發(fā)明云數(shù)據(jù)中心管理平臺的層次架構(gòu)圖;
[0044] 圖3是本發(fā)明實施例提供的另一方法流程圖;
[0045] 圖4是本發(fā)明實施例提供的線程池執(zhí)行任務(wù)的方法流程圖;
[0046] 圖5是本發(fā)明實施例提供的云數(shù)據(jù)中心管理平臺結(jié)構(gòu)圖;
[0047] 圖6是本發(fā)明實施例提供的云數(shù)據(jù)中心管理平臺的另一結(jié)構(gòu)圖。
【具體實施方式】
[0048] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述。顯然,所描述的實施例僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本 發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實 施例,都屬于本發(fā)明保護的范圍。
[0049] 如圖1所示,本發(fā)明實施例提供了一種基于云數(shù)據(jù)中心管理平臺的任務(wù)管理方 法