分布式任務調度的方法和裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及定時任務技術,特別是涉及分布式任務調度的方法和裝置。
【背景技術】
[0002]近年來,隨著互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)量大,并發(fā)數(shù)高等特點突出,對系統(tǒng)服務要求越來越高;從系統(tǒng)的角度,請求數(shù)據(jù)盡量先預處理并生成異步任務,并快速返回結果,提高系統(tǒng)響應時間及吞吐量,系統(tǒng)再在預處理結果上對異步任務進行處理,最終完成用戶請求;但這會帶來任務控制、分步式調度與高效等問題。
[0003]現(xiàn)有方法主要是由幾個步驟完成:(I)系統(tǒng)每隔預定時間觸發(fā)執(zhí)行任務操作請求;(2)系統(tǒng)根據(jù)請求執(zhí)行總任務數(shù)、執(zhí)行線程數(shù)、單次取任務數(shù)計算出單個線程執(zhí)行的任務數(shù)以及需要執(zhí)行循環(huán)數(shù);(3)系統(tǒng)在單次循環(huán)中,根據(jù)執(zhí)行線程數(shù),多次從任務資源池獲取任務,分配給指定的線程池執(zhí)行,線程池內線程執(zhí)行中相互制約;(4)只有當?shù)?3)步分配的所有任務執(zhí)行完成后,循環(huán)次數(shù)加一;如果計算循環(huán)次數(shù)大于或等于第(2)步計算需要執(zhí)行循環(huán)數(shù),則退出請求;否則循環(huán)執(zhí)行第(3)步。
[0004]然而,現(xiàn)有技術主要有以下幾個缺點:(1)操作參數(shù)無法修改,只有使用默認值;
(2)執(zhí)行子線程需要相互等待制約,降低任務執(zhí)行效率;(3)線程可能獨占過多任務,并串行執(zhí)行,而其它線程無法執(zhí)行,導致任務執(zhí)行效率低下;(4)任務積壓無報警機制。
[0005]因此,需要一種能夠提高任務執(zhí)行的效率,并達到可以控制任務執(zhí)行并發(fā)執(zhí)行數(shù)以便更好的執(zhí)行任務的分布式任務調度的方法和裝置。
【發(fā)明內容】
[0006]根據(jù)本發(fā)明的一個實施例,提供了一種分布式任務調度的方法,包括:由分布式任務調度裝置接收任務執(zhí)行請求;由所述裝置的控制器模塊確定線程池是否繁忙;如果所述線程池空閑,則由所述控制器模塊處理接收到的任務執(zhí)行請求并對所述線程池生成任務線程;由所述線程池執(zhí)行所生成的任務線程;以及在所述任務完成之后,由所述裝置的參數(shù)設置模塊確定由所述線程池生成的執(zhí)行線程是否繼續(xù)執(zhí)行。
[0007]優(yōu)選地,在確定所述線程池是否繁忙之前,由所述控制器模塊確定是否校驗調度。
[0008]優(yōu)選地,由所述線程池執(zhí)行所請求的任務進一步包括:由所述參數(shù)設置模塊計算已執(zhí)行的總任務數(shù);以及由所述參數(shù)設置模塊將已執(zhí)行的總任務數(shù)與請求的總任務數(shù)進行比較,以便確定所述任務是否已經(jīng)執(zhí)行完成。
[0009]優(yōu)選地,如果確定沒有完成所述任務,則由所述控制器模塊從任務池取出參數(shù)信息預設定的任務數(shù);以及由所述線程池執(zhí)行所取出的任務,直到所有任務都已經(jīng)執(zhí)行完成。
[0010]優(yōu)選地,如果確定所述線程池所生成的執(zhí)行線程繼續(xù)執(zhí)行,則由所述控制器模塊獲取任務池中待執(zhí)行的任務數(shù);由所述控制器模塊確定所獲取的待執(zhí)行的任務數(shù)是否達到報警臨界值;以及如果已經(jīng)達到所述報警臨界值,則由報警通知模塊執(zhí)行任務積壓報警。
[0011]根據(jù)本發(fā)明的另一個實施例,提供了一種分布式任務調度的裝置,包括:控制器模塊,所述控制器模塊被配置成,當所述裝置接收到任務執(zhí)行請求時,確定線程池是否繁忙,并且在所述線程池空閑的情況下,處理接收到的任務執(zhí)行請求并對所述線程池生成任務線程;線程池,所述線程池被配置成執(zhí)行所生成的任務線程;以及參數(shù)設置模塊,所述參數(shù)設置模塊被配置成,在任務完成之后,確定由所述線程池生成的執(zhí)行線程是否繼續(xù)執(zhí)行。
[0012]優(yōu)選地,所述控制器進一步被配置成:在確定所述線程池是否繁忙之前,確定是否校驗調度。
[0013]優(yōu)選地,所述參數(shù)設置模塊進一步被配置成:計算已執(zhí)行的總任務數(shù);以及將已執(zhí)行的總任務數(shù)與請求的總任務數(shù)進行比較,以便確定所述任務是否已經(jīng)執(zhí)行完成。
[0014]優(yōu)選地,所述控制器進一步被配置成:如果確定沒有完成所述任務,則從任務池取出參數(shù)信息預設定的任務數(shù)。
[0015]優(yōu)選地,所述線程池進一步被配置成:執(zhí)行所取出的任務,直到所有任務都已經(jīng)執(zhí)tx完成。
[0016]優(yōu)選地,所述控制器進一步被配置成:如果確定所述線程池所生成的執(zhí)行線程繼續(xù)執(zhí)行,則獲取任務池中待執(zhí)行的任務數(shù);以及確定所獲取的待執(zhí)行的任務數(shù)是否達到報警臨界值;
[0017]優(yōu)選地,所述裝置進一步包括:報警通知模塊,所述報警通知模塊被配置成,如果已經(jīng)達到所述報警臨界值,則執(zhí)行任務積壓報警。
[0018]有益效果
[0019]根據(jù)本發(fā)明的技術方案實現(xiàn)了可配置、修改各參數(shù),以此控制任務的并發(fā)執(zhí)行數(shù)量,達到快速處理目標任務。而且,參數(shù)信息可回退至初始狀態(tài),一般初始參數(shù)是能夠保證系統(tǒng)任務正常運行,只有待執(zhí)行任務量,系統(tǒng)才需要調整參數(shù),提高并發(fā)執(zhí)行數(shù)量。本發(fā)明在系統(tǒng)響應請求前檢驗線程池處理能力,使得避免了單一應用過于繁忙;系統(tǒng)執(zhí)行任務時,避免執(zhí)行線程相互等待、相互影響。而且,本發(fā)明的技術方案還采取了輪詢檢測任務池積壓數(shù)量,以便達到警戒水位進行觸發(fā)報警的機制。
[0020]根據(jù)本發(fā)明的技術方案,通過控制裝置內不積壓、搶占任務,系統(tǒng)內所有裝置線程執(zhí)行完成再申請獲取任務執(zhí)行,從而達到系統(tǒng)分布式調度任務。
[0021]根據(jù)本公開和附圖的下面的詳細描述,對本領域的普通技術人員來說其它的目的、特征、以及優(yōu)點將是顯而易見的。
【附圖說明】
[0022]附圖圖示了本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。在附圖中:
[0023]圖1圖示了根據(jù)本發(fā)明實施例的分布式任務調度的裝置的示意圖。
[0024]圖2圖示了根據(jù)本發(fā)明實施例的分布式任務調度的方法的流程圖。
【具體實施方式】
[0025]根據(jù)本發(fā)明的實施例公開了一種分布式任務調度的方法和裝置。在以下描述中,為了說明的目的,闡述了多個具體細節(jié)以提供對本發(fā)明的實施例的全面理解。然而,對于本領域技術人員顯而易見的是,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實現(xiàn)。
[0026]圖1圖示了根據(jù)本發(fā)明實施例的分布式任務調度的裝置100的示意圖。如圖1所示,裝置100包括參數(shù)設置模塊102、線程池104、控制器模塊106和報警通知模塊108。
[0027]參數(shù)設置模塊102可在運行時修改裝置內的線程池信息、控制器參數(shù)以及報警通知參數(shù),以便于裝置內其它組件使用。所述參數(shù)信息包括但不限于請求總任務數(shù)、執(zhí)行線程數(shù)、單次取任務數(shù)、是否校驗、裝置繁忙標記、裝置繁忙臨界值、任務完成繼續(xù)執(zhí)行標記、以及線程池核心線程數(shù)、線程池最大工作線程數(shù)等。
[0028]線程池104是執(zhí)行任務的具體資源池,控制著線程的運行狀態(tài)、等待隊列、最大執(zhí)行線程數(shù)等。
[0029]控制器模塊106具有以下控制功能:1、檢測裝置是否繁忙,線程池運行狀態(tài),決定是否可處理請求;2、檢查任務池待執(zhí)行任務數(shù),校驗是否達到警戒任務數(shù),再確認是否觸發(fā)報警通知;3、從任務池獲取任務,分發(fā)給線程池執(zhí)行,并控制著單一請求觸發(fā)需要處理總任務數(shù);4、通過控制自身裝置運行狀態(tài),達到可影響分布在其它處的相同裝置。
[0030]報警通知模塊108用于當檢測到達到裝置100預設置的報警臨界值時,進行任務積壓報警。裝置100支持郵件通知及手機短信通知的報警方式。本領域技術人員將理解,可以使用其他的報警方式。
[0031]當裝置100被初始化時,返回一個任務調度。然后,參數(shù)設置模塊102根據(jù)默認設置來初始化線程池大小、總任務數(shù)、執(zhí)行線程數(shù)以及單次取任務數(shù)等。而且,在運行中,通過參數(shù)設置模塊102可修改裝置100的信息,從而控制裝置100的內部工作流程。
[0032]圖2圖示了根據(jù)本發(fā)明實施例的分布式任務調度的方法200的流程圖。如圖2所示,在步驟202中,裝置100接收到任務執(zhí)行請求。在步驟204中,由控制器模塊106確定是否需要校驗調度。如果不需要校驗調度,則該處理進行到步驟208 ;如果需要校驗調度,則該處理進行到步驟20