一種基于分布式可配置加權算法的任務調度方法及系統的制作方法
【專利摘要】本發明適用于節點服務器的任務調度領域,提供了一種基于分布式可配置加權算法的任務調度方法及系統,該方法包括如下步驟:通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行;將每個任務組分配到各個節點服務器分別進行執行;檢測節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據加權算法重新進行分組。本發明能解決項目中出現的大批量周期性任務并發執行,合理充分利用系統資源。
【專利說明】一種基于分布式可配置加權算法的任務調度方法及系統
【技術領域】
[0001]本發明涉及節點服務器的任務調度領域,尤其涉及一種基于分布式可配置加權算法的任務調度方法及系統。
【背景技術】
[0002]隨著項目部署范圍擴大,所服務的節點數不斷增加,多線程調度方案不能滿足系統所需求的服務頻率,周期性任務也不能按時完成。當前所面臨的問題是如何保證大批量的周期性任務能在周期內完成執行。綜上可知,現有技術在實際使用上顯然存在不便與缺陷,所以有必要加以改進。
【發明內容】
[0003]針對上述的缺陷,本發明的目的在于提供一種基于分布式可配置加權算法的任務調度方法及系統,能解決項目中出現的大批量周期性任務并發執行,合理充分利用系統資源。
[0004]為了實現上述目的,本發明提供一種基于分布式可配置加權算法的任務調度方法,所述方法包括如下步驟:
[0005]通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行;
[0006]將每個任務組分配到各個節點服務器分別進行執行;
[0007]檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組。
[0008]根據本發明的任務調度方法,“通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行”的步驟包括:
[0009]在一個任務組內創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值;
[0010]運行任務并統計每個頻率每個任務的實際運行時間Tl(l?N),T2(l?N),T3(l ?N),T4(l ?N);
[0011]計算每個頻率下每個任務的運行時間與周期的比值;
[0012]將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ;
[0013]將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
[0014]根據本發明的任務調度方法,“檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組”的步驟包括:
[0015]巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。
[0016]根據本發明的任務調度方法,所述方法還包括:當節點服務器接收到一個新任務時,將所述新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
[0017]本發明相應提供一種基于分布式可配置加權算法的任務調度系統,所述系統包括任務調度中心以及節點服務器,
[0018]所述節點服務器用于執行所述任務調動中心分配的任務;
[0019]所述任務調度中心包括任務分組模塊以及任務巡檢模塊,
[0020]所述任務分組模塊用于通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行;
[0021]所述任務巡檢模塊用于檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組。
[0022]根據本發明的任務調度系統,所述任務分組模塊還包括:
[0023]預設單元,用于在一個任務組內創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值;
[0024]統計單元,運行任務并統計每個頻率每個任務的實際運行時間Tl (I?N),T2 (I?N),T3(l ?N),T4(l ?N);
[0025]計算單元,計算每個頻率下每個任務的運行時間與周期的比值;
[0026]分組單元,將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ;將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
[0027]根據本發明的任務調度系統,所述任務巡檢模塊還用于巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。
[0028]根據本發明的任務調度系統,任務調度中心還用于當節點服務器接收到一個新任務時,將所述新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
[0029]本發明通過建立多個服務器節點的工作組,統一由任務調度中心管理分配任務,將大量的任務負載分配到多個點執行。任務調度中心機制統籌調度任務分布,建立適當的任務分配規則保證各個節點都在額定負載范圍內運行。不同頻率任務分組集中管理,將不同頻率的任務進行分類管理,以便于任務分組合并拆分管理。動態監視任務,及時拆分負載加重的任務。任務調度中心設置巡檢線程,檢測每個任務組的執行情況,當任務組運行時間達到警告運行時間時,對任務組進行拆分,保證任務下一周期達到期望內完成執行。借此,本發明能解決項目中出現的大批量周期性任務并發執行,合理充分利用系統資源。
【專利附圖】
【附圖說明】
[0030]圖1是本發明一種基于分布式可配置加權算法的任務調度系統的框架圖;
[0031]圖2是本發明一種實施例中進行任務調度的流程圖;
[0032]圖3是本發明一種基于分布式可配置加權算法的任務調度方法的流程圖。【具體實施方式】
[0033]為了使本發明的目的、技術方案及優點更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。
[0034]如圖1所示,本發明一種基于分布式可配置加權算法的任務調度系統100,包括任務調度中心10以及節點服務器20。節點服務器20用于執行任務調動中心10分配的任務,任務調度中心10包括任務分組模塊11以及任務巡檢模塊12。
[0035]任務分組模塊11用于通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行。加權算法并非該發明重點,因此在此不再詳述。任務組的分配,把每個任務組分配制負載較小的節點服務器,一個節點服務器20可以運行多個任務組,每個任務組對應一個線程。
[0036]任務巡檢模塊12用于檢測節點服務器20上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據加權算法重新進行分組。重新分組在任務調度中心10完成,出現拆分或者合并后重新根據節點負載下發任務。任務分布到不同節點服務器20運行,任務調度中心10只負責調度。
[0037]任務調度中心10還用于當節點服務器20接收到一個新任務時,將新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
[0038]優選的是,任務分組模塊11還包括:預設單元111、統計單元112、計算單元113以及分組單元114。
[0039]預設單元111,用于在一個任務組內創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值。其中,周期為I/頻率,在本發明中,描述頻率實際為描述周期。
[0040]統計單元112,運行任務并統計每個頻率每個任務的實際運行時間Tl (I?N),T2 (I ?N),T3 (I ?N),T4 (I ?N)。
[0041]計算單元113,計算每個頻率下每個任務的運行時間與周期的比值。
[0042]分組單元114,將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ;將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
[0043]優選的是,任務巡檢模塊12還用于巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。
[0044]對于將運行時間與該任務周期的比值大于Cl而小雨C2的單個任務不做處理,但是該組可以加入一個任務,前提是滿足任務加入后運行時間不大于C2。
[0045]圖2是本發明一種實施例中進行任務調度的流程圖,其包括如下步驟:
[0046]步驟S201,創建任務并按頻率分組,并根據運行任務記錄運行時間并計算運行時間與周期的比值設置任務組合并條件Cl和任務組拆分條件C2。該周期根據頻率計算得出。具體的可以創建周期分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為首次運行任務記錄運行時間并計算運行時間與周期的比值小于百分之30,任務拆分條件C2為首次運行任務記錄運行時間并計算運行時間與周期的比值大于百分之70。[0047]步驟S202,運行任務,記錄運行時間并計算運行時間與周期的比值。具體的,首次運行統計每個頻率每個任務的實際運行時間Tl (I?N),T2 (I?N),T3 (I?N),T4 (I?N)。
[0048]步驟S203,判斷該比值是否滿足任務組合并條件Cl,若是則進入步驟S204,否則進入步驟S205。
[0049]步驟S204,將滿足該任務組合并條件Cl的任務合并為一個任務組。具體的,條件滿足Cl的任務使用0-1背包進行合并,且保證合并后任務組保證不滿足Cl條件。例如周期為Fl任務分別為Rl (I?X)、R2 (I?X)、R3 (I?X)、R4 (I?X),每個組任務運行時間不能滿足條件C2,即不超過Fl周期的百分70。
[0050]步驟S205,將不滿足該任務組合并條件Cl的任務單獨形成為一個任務組。
[0051]步驟S206,周期執行每個任務組的任務。
[0052]步驟S207,統計每個任務組的運行時間。
[0053]步驟S208,判定是否滿足任務組拆分條件C2。若是進入步驟S209,否則完成。
[0054]步驟S209,將該任務組內的任務進行拆分,并回到步驟S201。
[0055]本發明通過建立多個服務器節點的工作組,統一由任務調度中心管理分配任務,將大量的任務負載分配到多個點執行。任務調度中心機制統籌調度任務分布,建立適當的任務分配規則保證各個節點都在額定負載范圍內運行。不同頻率任務分組集中管理,將不同頻率的任務進行分類管理,以便于任務分組合并拆分管理。動態監視任務,及時拆分負載加重的任務。任務調度中心設置巡檢線程,檢測每個任務組的執行情況,當任務組運行時間達到警告運行時間時,對任務組進行拆分,保證任務下一周期達到期望內完成執行。借此,本發明能解決項目中出現的大批量周期性任務并發執行,合理充分利用系統資源。
[0056]圖3是本發明一種基于分布式可配置加權算法的任務調度方法的流程圖。該方法通過如圖1所示的系統實現,該方法包括如下步驟:
[0057]步驟S301,通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行。本步驟通過任務調度中心10的任務分組模塊11實現。
[0058]步驟S302,將每個任務組分配到各個節點服務器分別進行執行。本步驟通過任務調度中心10和節點服務器20共同實現。
[0059]步驟S303,檢測節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據加權算法重新進行分組。本步驟通過任務調度中心10的任務巡檢模塊12實現。
[0060]優選地是,步驟S301還包括:創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值;運行任務并統計每個頻率每個任務的實際運行時間Tl(l?N),T2(l?N),T3(l?N),T4(l?N);計算每個頻率下每個任務的運行時間與周期的比值;將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ;將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
[0061]優選地是,步驟S303還包括:巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。[0062]優選的是,該方法還包括:當節點服務器接收到一個新任務時,將新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
[0063]綜上所述,本發明通過建立多個服務器節點的工作組,統一由任務調度中心管理分配任務,將大量的任務負載分配到多個點執行。任務調度中心機制統籌調度任務分布,建立適當的任務分配規則保證各個節點都在額定負載范圍內運行。不同頻率任務分組集中管理,將不同頻率的任務進行分類管理,以便于任務分組合并拆分管理。動態監視任務,及時拆分負載加重的任務。任務調度中心設置巡檢線程,檢測每個任務組的執行情況,當任務組運行時間達到警告運行時間時,對任務組進行拆分,保證任務下一周期達到期望內完成執行。借此,本發明能解決項目中出現的大批量周期性任務并發執行,合理充分利用系統資源。
[0064]當然,本發明還可有其它多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。
【權利要求】
1.一種基于分布式可配置加權算法的任務調度方法,其特征在于,所述方法包括如下步驟: 通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行; 將每個任務組分配到各個節點服務器分別進行執行; 檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組。
2.根據權利要求1所述的任務調度方法,其特征在于,“通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行”的步驟包括: 在一個任務組內創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值; 運行任務并統計每個頻率每個任務的實際運行時間Tl (I~N),T2 (I~N),T3 (I~N),T4(l ~N); 計算每個頻率下每個任務的運行時間與周期的比值; 將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ; 將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
3.根據權利要求2所述的任務調度方法,其特征在于,“檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組”的步驟包括: 巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。
4.根據權利要求1所述的任務調度方法,其特征在于,所述方法還包括:當節點服務器接收到一個新任務時,將所述新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
5.一種基于分布式可配置加權算法的任務調度系統,其特征在于,所述系統包括任務調度中心以及節點服務器, 所述節點服務器用于執行所述任務調動中心分配的任務; 所述任務調度中心包括任務分組模塊以及任務巡檢模塊, 所述任務分組模塊用于通過配置加權算法對多個任務進行分組,按配置對同頻率的任務進行分組,每個分組依照規則保證在期望概率類能夠完成執行; 所述任務巡檢模塊用于檢測所述節點服務器上的任務組的執行情況,當任務組運行時間達到或超過預設的閾值時間時,則對任務組內的任務進行拆分,并根據所述加權算法重新進行分組。
6.根據權利要求5所述的任務調度系統,其特征在于,所述任務分組模塊還包括: 預設單元,用于在一個任務組內創建頻率分別為F1、F2、F3、F4的任務各N個,設置任務合并條件Cl為運行時間與周期的比值小于第一閾值,任務拆分條件C2為運行時間與周期的比值為大于第二閾值; 統計單元,運行任務并統計每個頻率每個任務的實際運行時間Tl (I~N),T2 (I~N),T3(l ~N),T4(l ~N); 計算單元,計算每個頻率下每個任務的運行時間與周期的比值; 分組單元,將同頻率任務中條件滿足Cl的任務進行合并,且使合并后的任務組的運行時間與周期的比值不滿足任務合并條件Cl以及任務拆分條件C2 ;將同頻率任務中條件不滿足Cl的任務單獨作為一個任務組。
7.根據權利要求6所述的任務調度系統,其特征在于,所述任務巡檢模塊還用于巡檢每個分組運行情況,一旦運行時間達到C2條件,則將該任務組內的任務進行拆分,并進行重新分組。
8.根據權利要求5所述的 任務調度系統,其特征在于,任務調度中心還用于當節點服務器接收到一個新任務時,將所述新任務放入任務分配隊列中作為一個新的任務組,等待進行組合并。
【文檔編號】G06F9/48GK103984594SQ201410203512
【公開日】2014年8月13日 申請日期:2014年5月14日 優先權日:2014年5月14日
【發明者】張發潤 申請人:上海上訊信息技術股份有限公司