一種分布式任務調(diào)度方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種分布式任務調(diào)度方法及裝置,方法包括:接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合;從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。本發(fā)明實現(xiàn)了任務調(diào)度裝置和任務執(zhí)行裝置之間的無狀態(tài)通信,可方便對任務執(zhí)行裝置進行線性擴展,能提升任務的執(zhí)行能力,通過對適用于不同任務執(zhí)行裝置的不同任務進行集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持不同任務之間的依賴。
【專利說明】一種分布式任務調(diào)度方法及裝置
【技術領域】
[0001]本發(fā)明涉及任務調(diào)度【技術領域】,尤其涉及一種分布式任務調(diào)度方法及裝置。
【背景技術】
[0002]一般來說,調(diào)度就是按照某種策略,將任務合理地分配到處理單元上執(zhí)行,以達到完成時間最短、提高系統(tǒng)利用率等目的。調(diào)度是實現(xiàn)高性能計算的關鍵技術之一。
[0003]隨著計算機應用范圍的日益擴大,分布式系統(tǒng)以及云計算技術和網(wǎng)絡技術的進一步發(fā)展,有越來越多的將多個分布式系統(tǒng)集成在一起進行統(tǒng)一管理的需求。目前,網(wǎng)絡中的分布式系統(tǒng)大都是各部門要運行一個或一個以上業(yè)務信息系統(tǒng)所構建的,因而這些分布式系統(tǒng)大多都是相互獨立,沒有什么相互的關聯(lián)關系,因為各個分布式系統(tǒng)之間沒有打通,無法相互兼容,無法集成在一起,因而也無法進行統(tǒng)一管理。
[0004]因此,無論是從系統(tǒng)的統(tǒng)一管理和資源共享,還是從各分布式系統(tǒng)之間需要進行通信等等,是否能將不同機器上運行的不同任務全局關聯(lián)打通,實現(xiàn)多種任務周期的多種類型依賴的支持和全局調(diào)度,是一個非常重要的問題。但是,現(xiàn)有的分布式系統(tǒng),對Hadoop、Linux和/或各種不同類型的數(shù)據(jù)庫等是通過多套分散的調(diào)度來進行獨立管理,無法打通,不能實現(xiàn)一站式任務管理,無疑會增加數(shù)據(jù)分析人員和數(shù)據(jù)維護人員的理解難度和工作復雜度,進而會增加系統(tǒng)的使用和維護成本。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明實施例提供一種分布式任務調(diào)度方法及裝置,來解決以上問題。所述技術方案如下:
[0006]一種分布式任務調(diào)度方法,包括:
[0007]接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;
[0008]根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同;
[0009]從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;
[0010]接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0011]根據(jù)本發(fā)明的同一構思,本發(fā)明還提供了一種分布式任務調(diào)度裝置,包括:
[0012]調(diào)度請求接收單元,用于接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;
[0013]下發(fā)校驗單元,用于根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同;
[0014]下發(fā)單元,用于從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;
[0015]結果反饋單元,用于接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0016]根據(jù)本發(fā)明的同一構思,本發(fā)明還提供了一種服務器,包括:顯示器、一個或者一個以上的處理器;存儲器;以及一個或者一個以上的程序,其中所述一個或者一個以上程序存儲于所述存儲器中,且經(jīng)配置以由所述一個或者一個以上處理器執(zhí)行,所述一個或者一個以上程序包含用于進行以下操作的指令:
[0017]接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;
[0018]根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同;
[0019]從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;
[0020]接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0021]本發(fā)明實施例提供的技術方案帶來的有益效果是:
[0022]任務調(diào)度裝置在接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求后,按照下發(fā)校驗邏輯對子任務進行校驗,將通過校驗的子任務下發(fā)到任務執(zhí)行裝置,實現(xiàn)了任務調(diào)度裝置和任務執(zhí)行裝置之間的無狀態(tài)通信,可方便對任務執(zhí)行裝置進行線性擴展,能提升任務的執(zhí)行能力;通過對適用于不同任務執(zhí)行裝置的不同任務進行集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持適用于不同任務執(zhí)行裝置的不同任務之間的依賴。
【專利附圖】
【附圖說明】
[0023]圖1是本發(fā)明實施例一所述的分布式任務調(diào)度方法流程圖;
[0024]圖2是本發(fā)明實施例一所述的任務分解方法流程圖;
[0025]圖3是本發(fā)明實施例二所述的分布式任務調(diào)度方法流程圖;
[0026]圖4是本發(fā)明實施例三所述的分布式任務調(diào)度裝置示意圖;
[0027]圖5是本發(fā)明實施例三所述的分布式任務調(diào)度裝置結構框圖;
[0028]圖6是本發(fā)明實施例三所述的任務執(zhí)行裝置布局示意圖;
[0029]圖7是本發(fā)明實施例四所述的分布式任務調(diào)度裝置結構框圖。
【具體實施方式】
[0030]為了使本發(fā)明目的、技術方案和優(yōu)點更加清楚,下面結合附圖并通過具體實施例來進一步說明本發(fā)明的技術方案。
[0031]實施例一
[0032]圖1是本實施例所述的分布式任務調(diào)度方法流程圖,本實施例主要以分布式任務調(diào)度系統(tǒng)中任務調(diào)度裝置(通常為分布式任務調(diào)度系統(tǒng)中的總服務器)和任務執(zhí)行裝置(例如Oracle入庫功能模塊、Linux數(shù)據(jù)上傳功能模塊、Hadoop對帳模塊等)之間進行任務調(diào)度和執(zhí)行的方法。如圖1所示,本實施例所述的分布式任務調(diào)度方法包括:
[0033]S101、接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求。
[0034]任務調(diào)度裝置接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型(例如Oracle入庫任務、Linux數(shù)據(jù)上傳任務、Hadoop MapReduce任務等)和所述任務執(zhí)行裝置的標識信息。其中所述任務執(zhí)行裝置的標識信息用于將各任務執(zhí)行裝置區(qū)別開來。在本實施例中,所述任務執(zhí)行裝置的標識信息可為任務執(zhí)行裝置的ID號或名稱。
[0035]S102、根據(jù)任務調(diào)度請求對子任務進行校驗,獲得通過校驗的子任務集合。
[0036]其中,對多少子任務進行校驗視系統(tǒng)規(guī)模和子任務的數(shù)目而定。若子任務數(shù)目校少或系統(tǒng)規(guī)模校小,可實現(xiàn)對所有子任務進行校驗,從所有子任務中獲得通過校驗的子任務集合;若子任務數(shù)目較多或系統(tǒng)規(guī)模校大,可實現(xiàn)對部分子任務進行校驗,例如當獲得通過校驗的子任務數(shù)目達到預設值時停止對其他子任務進行較驗。
[0037]從子任務中選擇與任務執(zhí)行裝置發(fā)出的任務調(diào)度請求相適配的子任務,獲得通過校驗的子任務集合。
[0038]其中,子任務是通過對任務進行任務分解獲得,圖2是本實施例的任務分解方法流程圖,如圖2所示,本實施例所述的任務分解方法包括:
[0039]S201、接收并存儲任務。
[0040]任務包括不同的任務類型,各種類型的任務的屬性包括:任務標識符(例如任務名稱或任務ID號),任務類型,還可包括生效時間、任務周期、任務執(zhí)行裝置責任人等。而不同任務類型的任務,其屬性不同,若某類型的任務涉及在兩個機器之間進行數(shù)據(jù)傳輸(例如將HDFS中的數(shù)據(jù)遷移至MYSQL中),則該類型的任務還包含源服務器標識符(如IP地址)、目標服務器標識符(如IP地址)等信息。
[0041]接收并存儲任務的方式可有多種,例如可通過提供專用的子任務提交軟件或子任務提交網(wǎng)頁來實現(xiàn)。在本實施例的一個優(yōu)選實施方式中,通過提供專用的子任務提交網(wǎng)頁來供用戶提交子任務。由于不同的任務類型,需要用戶提供的任務信息不同,可在網(wǎng)頁上通過下拉列表的形式列出所有已注冊的任務類型,當用戶選擇想要提交的任務的類型時,頁面動態(tài)給出該類型任務的表單。
[0042]例如,用戶創(chuàng)建一個類型為“HDFS入庫至MYSQL”的數(shù)據(jù)入庫任務,用戶填寫的任務名稱為“APP分時總覽模型入庫MySQL”,該任務用于將A服務器的B文件路徑下的后綴名為*.C的文件下的D表中的E、F、G、H……等列的數(shù)據(jù),分別按照f 1、f2、f3、f4……等映射關系遷移到a服務的d表中的e、f、g、h……等列。任務周期為每分鐘一次,生效時間為“2013-04-0116:00:00”,任務每天最早可以被啟動的時間為00時00分,每次執(zhí)行100000條數(shù)據(jù)。
[0043]又如,用戶創(chuàng)建一個類型為“Hadoop MapReduce計算”的任務,用戶填寫的任務名稱為“APP分時總覽按天計算”,用于將HDFS集群A上路徑B下的后綴名為.C的數(shù)據(jù)文件D,按照執(zhí)行Jar包E里面的Map類F和Reduce類G進行計算,并將結果輸出到集群A上的路徑H下。任務周期為一天一次,生效時間為“2013-04-0100:00:00”。
[0044]S202、按照預設任務分解規(guī)則將任務分解成子任務。
[0045]根據(jù)任務屬性,按照預設的該類型任務的任務分解規(guī)則將任務分解成子任務。例如,可按照任務的生效時間作為將任務分解成子任務的起始時間,按照任務周期依次生成子任務,將生成的子任務寫入子任務列表中。
[0046]如果第一次對某任務進行任務分解,則生成的第一個子任務的起始時間設定為任務的生效時間,第一個子任務的截止時間為任務的生效時間加上一個任務周期的時間。
[0047]如果不是第一次對某任務進行任務分解,則生成的子任務的起始時間設定為該子任務的生成序數(shù)減一以后乘以一個任務周期的時間,生成的子任務的截止時間設定為該子任務的生成序數(shù)乘以一個任務周期的時間。
[0048]當分布式任務調(diào)度系統(tǒng)的系統(tǒng)時間達到某個子任務的截止時間,則將該子任務寫入子任務列表中。當某任務的子任務中存在一個子任務的截止時間晚于分布式任務調(diào)度系統(tǒng)的系統(tǒng)時間或晚于任務失效時間,則暫停對該任務進行任務分解。
[0049]S203、存儲生成的子任務。
[0050]子任務包括以下屬性:子任務標識符(例如子任務ID號)、子任務所屬任務的標識符(例如任務ID號)、子任務類型等,其中所述子任務類型和該子任務所屬任務的任務類型相同。
[0051]每次生成子任務后,將子任務存儲起來,以供任務調(diào)度裝置調(diào)度,例如以列表的形式將子任務存儲起來作為子任務列表。
[0052]S103、從子任務集合中選擇子任務下發(fā)到任務執(zhí)行裝置。
[0053]從上一步獲取的子任務集合中選擇與任務執(zhí)行裝置發(fā)出的任務調(diào)度請求相適配的子任務下發(fā)到該任務執(zhí)行裝置。
[0054]例如,如果接收到一個任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其執(zhí)行裝置的標識信息為IP地址(例如172.23.1.100),請求的任務類型為Hadoop MapReduce計算,請求時間為2013-04-0116:01:15,則對子任務集合中的子任務按照預設的下發(fā)校驗邏輯進行校驗,篩選出與所述任務調(diào)度請求相適配的子任務,例如選出任務標識符為A的起始時間為2013-04-0100:00:00的子任務,下發(fā)給該任務執(zhí)行裝置。
[0055]S104、接收任務執(zhí)行裝置返回的執(zhí)行結果,修改子任務的屬性。
[0056]當子任務執(zhí)行成功,可將該子任務移除子任務列表單獨存儲,或者修改子任務的屬性,標識出該子任務的狀態(tài)。若為后者,則子任務的屬性還可包括:子任務狀態(tài)和重試次數(shù)等信息。當接收到任務執(zhí)行裝置返回的執(zhí)行結果時,按照返回結果修改子任務的狀態(tài)信息。當執(zhí)行成功時,發(fā)送子任務執(zhí)行成功的信息,當任務調(diào)度裝置接收到子任務執(zhí)行成功的信息時,解析出子任務標識符,將子任務列表中該子任務的狀態(tài)改為成功狀態(tài)(SUCCESSFUL)。當執(zhí)行失敗時,發(fā)送子任務執(zhí)行失敗的信息,當任務調(diào)度裝置接收到子任務執(zhí)行失敗的信息時,解析出子任務和標識符,將子任務列表中該子任務的重試次數(shù)加I。
[0057]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,則不再下發(fā)該子任務。
[0058]本實施例所述的分布式任務調(diào)度方法的技術方案中,任務調(diào)度裝置在接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求后,按照下發(fā)校驗邏輯對子任務進行校驗,將通過校驗的子任務下發(fā)到任務執(zhí)行裝置,實現(xiàn)了任務調(diào)度裝置和任務執(zhí)行裝置之間的無狀態(tài)通信,可方便對任務執(zhí)行裝置進行線性擴展,能提升任務的執(zhí)行能力;通過對適用于不同任務執(zhí)行裝置的不同任務進行集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持適用于不同任務執(zhí)行裝置的不同任務之間的依賴。
[0059]實施例二
[0060]圖3是本實施例所述的分布式任務調(diào)度方法流程圖,本實施例主要以分布式任務調(diào)度系統(tǒng)中任務調(diào)度裝置(通常為分布式任務調(diào)度系統(tǒng)中的總服務器)和任務執(zhí)行裝置(例如Oracle入庫功能模塊、Linux數(shù)據(jù)上傳功能模塊、Hadoop對帳模塊等)之間進行任務調(diào)度和執(zhí)行的方法。如圖3所示,本實施例所述的分布式任務調(diào)度方法包括:
[0061]S301、接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求。
[0062]任務調(diào)度裝置接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型(例如Oracle入庫任務、Linux數(shù)據(jù)上傳任務、Hadoop MapReduce任務等)和所述任務執(zhí)行裝置的標識信息。其中所述任務執(zhí)行裝置的標識信息用于將各任務執(zhí)行裝置區(qū)別開來。在本實施例中,所述任務執(zhí)行裝置的標識信息可為任務執(zhí)行裝置的ID號或名稱。
[0063]S302、根據(jù)任務調(diào)度請求按照下發(fā)校驗邏輯對子任務進行校驗,獲得通過校驗的子任務集合。
[0064]其中,對多少子任務進行校驗視系統(tǒng)規(guī)模和子任務的數(shù)目而定。若子任務數(shù)目校少或系統(tǒng)規(guī)模校小,可實現(xiàn)對所有子任務進行校驗,從所有子任務中獲得通過校驗的子任務集合;若子任務數(shù)目較多或系統(tǒng)規(guī)模校大,可實現(xiàn)對部分子任務進行校驗,例如當獲得通過校驗的子任務數(shù)目達到預設值時停止對其他子任務進行較驗。
[0065]從子任務中選擇與任務執(zhí)行裝置發(fā)出的任務調(diào)度請求相適配的子任務,獲得通過校驗的子任務集合。
[0066]其中,子任務是通過對任務進行任務分解獲得,其具體方式如實施例一所示,在此不作贅述。
[0067]在本實施例的一個優(yōu)選實施方式中,所述下發(fā)校驗邏輯包括:按照預設順序對子任務進行任務校驗、子任務校驗、執(zhí)行裝置校驗和/或依賴關系校驗。
[0068]任務校驗包括,根據(jù)子任務所屬任務的屬性,判斷子任務是否滿足任務調(diào)度請求。具體地,任務校驗可包括:
[0069](I)校驗子任務所屬任務的任務類型與與任務執(zhí)行裝置請求的任務類型是否一致。
[0070](2)校驗子任務所屬任務對任務執(zhí)行裝置是否有限制,例如是否限制任務執(zhí)行裝置的標識信息(例如IP地址)是否在限制的范圍之內(nèi)。例如子任務的屬性還包括任務執(zhí)行裝置信息,包括:允許所有任務執(zhí)行裝置、只允許某一個或一個以上的標識信息為特定值的任務執(zhí)行裝置。
[0071](3)校驗任務的狀態(tài)是否為有效,即校驗可被下發(fā)的子任務所屬任務是否處于有效狀態(tài)。例如任務的屬性信息還包括是否有效,對子任務進行校驗時,
[0072]獲取該子任務的所屬任務,判斷所述所屬任務的是否有效屬性是否為有效,若不為有效則表明該子任務不能通過校驗。
[0073](4)校驗子任務所屬任務的優(yōu)先級是否屬于發(fā)出任務請求的任務執(zhí)行裝置注冊的優(yōu)先級范圍之內(nèi)。例如任務的屬性信息還包括優(yōu)先級,任務執(zhí)行裝置在任務調(diào)度裝置中的注冊信息包括任務執(zhí)行裝置的標識信息和優(yōu)先級范圍,通過任務調(diào)度請求中的任務執(zhí)行裝置的標識信息獲取該任務執(zhí)行裝置的優(yōu)先級范圍,對子任務進行校驗時,獲取該子任務的所屬任務,判斷所述所屬任務的優(yōu)先級是否在所述任務執(zhí)行裝置的優(yōu)先級范圍之內(nèi)。
[0074]例如,分別位于機器A、B、C上的任務執(zhí)行裝置X均能執(zhí)行任務類型為Y的任務,為了使機器A上的任務執(zhí)行裝置只專注于做優(yōu)先級高的任務,則可限定機器A上的任務執(zhí)行裝置X的優(yōu)先級范圍為8-10,則當機器A上的任務執(zhí)行裝置X請求子任務時,優(yōu)先級范圍為1-7的任務類型為Y的任務將不會下發(fā)。
[0075](5)校驗子任務所屬任務是否符合該任務與其他任務之間的依賴限制。
[0076]子任務校驗包括,根據(jù)子任務的信息判斷各子任務是否滿足下發(fā)條件。具體地,子任務校驗可包括:
[0077](I)校驗子任務是否為可強制下發(fā)的子任務。
[0078]例如,可設置一種子任務類型,對于屬于同一個任務的不同子任務,使該子任務類型的子任務有最高的下發(fā)優(yōu)先級。
[0079](2)校驗子任務的狀態(tài)是否為可被下發(fā)的狀態(tài)。例如,就緒狀態(tài)(READY)的子任務可被下發(fā),而任務狀態(tài)為成功狀態(tài)(SUCCESSFUL)的子任務不可被下發(fā)。
[0080](3)校驗子任務截止時間是否晚于任務調(diào)度裝置的請求時間。若是才可被下發(fā)。
[0081](4)校驗子任務是否滿足延遲時間。
[0082]例如,要求當前時間晚于子任務的截止時間加上延遲時間,才可被下發(fā)。
[0083](5)校驗子任務是否滿足啟動時間。
[0084]例如,要求當前時間晚于子任務的當日啟動時間,才可被下發(fā)。
[0085](6)校驗子任務是否滿足該子任務與其他子任務之間的依賴關系。
[0086](7)校驗子任務是否滿足預設的嘗試次數(shù)限制。
[0087]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,
[0088](8)校驗重試的子任務是否達到重試等待時間。例如子任務的屬性還包括重試等待時間,所述重試等待時間用于限定子任務下發(fā)失敗時還需等待的最少時間。
[0089]執(zhí)行裝置校驗包括,根據(jù)發(fā)送任務請求的任務執(zhí)行裝置的注冊信息,獲取所述任務執(zhí)行裝置的托管機信息,判斷所述托管機信息是否符合子任務對托管機的限定條件。具體地,執(zhí)行裝置校驗包括:
[0090](I)校驗發(fā)出任務請求的任務執(zhí)行裝置的標識信息是否滿足子任務的限定。例如子任務的屬性還包括任務執(zhí)行裝置的標識信息,用于對執(zhí)行該子任務的任務執(zhí)行裝置進行限定。
[0091](2)校驗發(fā)出任務請求的任務執(zhí)行裝置的當前狀態(tài)是否為有效。
[0092]( 3 )校驗發(fā)出任務請求的任務執(zhí)行裝置上同時運行的子任務是否滿足子任務的限制。
[0093](4)校驗子任務的優(yōu)先級是否滿足發(fā)出任務請求的任務執(zhí)行裝置對子任務的優(yōu)先級的限定條件。
[0094](5)校驗發(fā)出任務請求的任務執(zhí)行裝置上正在執(zhí)行的子任務的數(shù)目是否滿足被校驗的子任務的限定。
[0095]在本實施例的一個優(yōu)選實施方式中,依賴關系校驗用于獲取子任務的前置子任務,根據(jù)所述子任務與所述前置子任務之間的依賴關系,判斷所述子任務是否符合下發(fā)條件。
[0096]需要說明的是,具體的下發(fā)校驗邏輯中,各種校驗的順序并非嚴格的一成不變的順序,凡在本實施方式的精神和原則之內(nèi),任何步驟的增、刪和/或調(diào)換,均包含在本實施例所述的方法之內(nèi)。
[0097]S303、從子任務集合中選擇子任務下發(fā)到任務執(zhí)行裝置。
[0098]經(jīng)過上述下發(fā)校驗邏輯校驗后,對符合的子任務按照預設算法進行排序,將第一個子任務下發(fā)到所述發(fā)送任務請求的任務執(zhí)行裝置。
[0099]具體地,排序包括:對所述子任務集合中各子任務按照嘗試次數(shù)倒序排序、按照優(yōu)先級進行順序排序、按照周期類型數(shù)序進行排序或按照運行時間順序進行排序。
[0100]S304、接收任務執(zhí)行裝置返回的執(zhí)行結果,修改子任務的屬性。
[0101]當子任務執(zhí)行成功,可將該子任務移除子任務列表單獨存儲,或者修改子任務的屬性,標識出該子任務的狀態(tài)。若為后者,則子任務的屬性還可包括:子任務狀態(tài)和重試次數(shù)等信息。當接收到任務執(zhí)行裝置返回的執(zhí)行結果時,按照返回結果修改子任務的狀態(tài)信息。當執(zhí)行成功時,發(fā)送子任務執(zhí)行成功的信息,當任務調(diào)度裝置接收到子任務執(zhí)行成功的信息時,解析出子任務標識符,將子任務列表中該子任務的狀態(tài)改為成功狀態(tài)(SUCCESSFUL)。當執(zhí)行失敗時,發(fā)送子任務執(zhí)行失敗的信息,當任務調(diào)度裝置接收到子任務執(zhí)行失敗的信息時,解析出子任務和標識符,將子任務列表中該子任務的重試次數(shù)加I。
[0102]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,則不再下發(fā)該子任務。
[0103]本實施例所述的分布式任務調(diào)度方法的技術方案中,通過下發(fā)校驗羅輯對子任務進行校驗,獲得通過校驗的子任務集合,能對對適用于不同任務執(zhí)行裝置的不同任務進行更精細的集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持適用于不同任務執(zhí)行裝置的不同任務之間的依賴。
[0104]實施例三
[0105]本實施例提出了一種分布式任務調(diào)度裝置,圖4是本實施例所述的分布式任務調(diào)度裝置示意圖,如圖4所述,本實施例所述的分布式任務調(diào)度裝置可覆蓋所有的數(shù)據(jù)分析系統(tǒng),包括 Postgre、TDff> Linux、Hadoop、Oracle、Mysql 等。
[0106]圖5是本實施例所述的分布式任務調(diào)度裝置結構框圖,如圖5所示,本實施例所述的分布式任務調(diào)度裝置501用于接收和響應任務執(zhí)行裝置1、任務執(zhí)行裝置2、任務執(zhí)行裝置N等的任務調(diào)度請求。
[0107]所述的分布式任務調(diào)度裝置501包括:調(diào)度請求接收單元5011、下發(fā)校驗單元5012、下發(fā)單元5013和結果反饋單元5014。
[0108]調(diào)度請求接收單元5011,用于接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息。
[0109]其中所述任務調(diào)度請求包括任務類型(例如Oracle入庫任務、Linux數(shù)據(jù)上傳任務、Hadoop MapReduce任務等)和所述任務執(zhí)行裝置的標識信息。其中所述任務執(zhí)行裝置的標識信息用于將各任務執(zhí)行裝置區(qū)別開來。在本實施例中,所述任務執(zhí)行裝置的標識信息可為任務執(zhí)行裝置的ID號或名稱。
[0110]下發(fā)校驗單元5012,用于根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同。
[0111]其中,對多少子任務進行校驗視系統(tǒng)規(guī)模和子任務的數(shù)目而定。若子任務數(shù)目校少或系統(tǒng)規(guī)模校小,可實現(xiàn)對所有子任務進行校驗,從所有子任務中獲得通過校驗的子任務集合;若子任務數(shù)目較多或系統(tǒng)規(guī)模校大,可實現(xiàn)對部分子任務進行校驗,例如當獲得通過校驗的子任務數(shù)目達到預設值時停止對其他子任務進行較驗。
[0112]從子任務中選擇與任務執(zhí)行裝置發(fā)出的任務調(diào)度請求相適配的子任務,獲得通過校驗的子任務集合。
[0113]其中,子任務是通過對任務進行任務分解獲得,其具體方式如實施例一所述,在此不作贅述。
[0114]下發(fā)單元5013,用于從子任務集合中選擇子任務下發(fā)到發(fā)出任務調(diào)度請求的任務執(zhí)行裝置。
[0115]經(jīng)過上述下發(fā)校驗單元5012進行下發(fā)校驗邏輯校驗后,對符合的子任務按照預設算法進行排序,將第一個子任務下發(fā)到所述發(fā)送任務請求的任務執(zhí)行裝置。
[0116]具體地,排序包括:對所述子任務集合中各子任務按照嘗試次數(shù)倒序排序、按照優(yōu)先級進行順序排序、按照周期類型數(shù)序進行排序或按照運行時間順序進行排序。
[0117]結果反饋單元5014,用于接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0118]當子任務執(zhí)行成功,可將該子任務移除子任務列表單獨存儲,或者修改子任務的屬性,標識出該子任務的狀態(tài)。若為后者,則子任務的屬性還可包括:子任務狀態(tài)和重試次數(shù)等信息。當接收到任務執(zhí)行裝置返回的執(zhí)行結果時,按照返回結果修改子任務的狀態(tài)信息。當執(zhí)行成功時,發(fā)送子任務執(zhí)行成功的信息,當任務調(diào)度裝置接收到子任務執(zhí)行成功的信息時,解析出子任務標識符,將子任務列表中該子任務的狀態(tài)改為成功狀態(tài)(SUCCESSFUL)。當執(zhí)行失敗時,發(fā)送子任務執(zhí)行失敗的信息,當任務調(diào)度裝置接收到子任務執(zhí)行失敗的信息時,解析出子任務和標識符,將子任務列表中該子任務的重試次數(shù)加I。
[0119]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,則不再下發(fā)該子任務。
[0120]本實施例所述的分布式任務調(diào)度裝置的技術方案采用分布式的體系架構和無狀態(tài)通信,實現(xiàn)了任務調(diào)度裝置和任務執(zhí)行裝置之間的無狀態(tài)通信,可方便對任務執(zhí)行裝置進行線性擴展,能提升任務的執(zhí)行能力;通過對適用于不同任務執(zhí)行裝置的不同任務進行集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持適用于不同任務執(zhí)行裝置的不同任務之間的依賴。
[0121]實施例四
[0122]圖7是本實施例所述的分布式任務調(diào)度裝置結構框圖,如圖7所示,本實施例所述的分布式任務調(diào)度裝置701用于接收和響應任務執(zhí)行裝置1、任務執(zhí)行裝置2、任務執(zhí)行裝置N等任務調(diào)度請求。
[0123]所述的分布式任務調(diào)度裝置701包括:調(diào)度請求接收單元7011、下發(fā)校驗單元7012、下發(fā)單元7013和結果反饋單元7014。
[0124]調(diào)度請求接收單元7011,用于接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息。
[0125]其中所述任務調(diào)度請求包括任務類型(例如Oracle入庫任務、Linux數(shù)據(jù)上傳任務、Hadoop MapReduce任務等)和所述任務執(zhí)行裝置的標識信息。其中所述任務執(zhí)行裝置的標識信息用于將各任務執(zhí)行裝置區(qū)別開來。在本實施例中,所述任務執(zhí)行裝置的標識信息可為任務執(zhí)行裝置的ID號或名稱。
[0126]下發(fā)校驗單元7012,用于根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合。
[0127]其中,對多少子任務進行校驗視系統(tǒng)規(guī)模和子任務的數(shù)目而定。若子任務數(shù)目校少或系統(tǒng)規(guī)模校小,可實現(xiàn)對所有子任務進行校驗,從所有子任務中獲得通過校驗的子任務集合;若子任務數(shù)目較多或系統(tǒng)規(guī)模校大,可實現(xiàn)對部分子任務進行校驗,例如當獲得通過校驗的子任務數(shù)目達到預設值時停止對其他子任務進行較驗。
[0128]從子任務中選擇與任務執(zhí)行裝置發(fā)出的任務調(diào)度請求相適配的子任務,獲得通過校驗的子任務集合。
[0129]其中,子任務是通過對任務進行任務分解獲得,其具體方式如實施例一所示,在此不作贅述。
[0130]在本實施例的一個優(yōu)選實施方式中,所述發(fā)校驗單元7012包括任務校驗子單元70121、子任務校驗子單元70122、執(zhí)行裝置校驗子單元70123和依賴關系校驗子單元70124:
[0131]按照預設順序通過所述任務校驗子單元70121、子任務校驗子單元70122、執(zhí)行裝置校驗子單元70123和依賴關系校驗子單元70124,對子任務進行任務校驗、子任務校驗、執(zhí)行裝置校驗和/或依賴關系校驗。
[0132]任務校驗子單元70121用于:根據(jù)子任務所屬任務的屬性,判斷子任務是否滿足任務調(diào)度請求。具體地,任務校驗子單元70121可用于:
[0133](I)校驗子任務所屬任務的任務類型與與任務執(zhí)行裝置請求的任務類型是否一致。
[0134](2)校驗子任務所屬任務對任務執(zhí)行裝置是否有限制,例如是否限制任務執(zhí)行裝置的標識信息(例如IP地址)是否在限制的范圍之內(nèi)。例如子任務的屬性還包括任務執(zhí)行裝置信息,包括:允許所有任務執(zhí)行裝置、只允許某一個或一個以上的標識信息為特定值的任務執(zhí)行裝置。
[0135](3)校驗任務的狀態(tài)是否為有效,即校驗可被下發(fā)的子任務所屬任務是否處于有效狀態(tài)。例如任務的屬性信息還包括是否有效,對子任務進行校驗時,獲取該子任務的所屬任務,判斷所述所屬任務的是否有效屬性是否為有效,若不為有效則表明該子任務不能通過校驗。
[0136](4)校驗子任務所屬任務的優(yōu)先級是否屬于發(fā)出任務請求的任務執(zhí)行裝置注冊的優(yōu)先級范圍之內(nèi)。例如任務的屬性信息還包括優(yōu)先級,任務執(zhí)行裝置在任務調(diào)度裝置中的注冊信息包括任務執(zhí)行裝置的標識信息和優(yōu)先級范圍,通過任務調(diào)度請求中的任務執(zhí)行裝置的標識信息獲取該任務執(zhí)行裝置的優(yōu)先級范圍,對子任務進行校驗時,獲取該子任務的所屬任務,判斷所述所屬任務的優(yōu)先級是否在所述任務執(zhí)行裝置的優(yōu)先級范圍之內(nèi)。
[0137]例如,分別位于機器A、B、C上的任務執(zhí)行裝置X均能執(zhí)行任務類型為Y的任務,為了使機器A上的任務執(zhí)行裝置只專注于做優(yōu)先級高的任務,則可限定機器A上的任務執(zhí)行裝置X的優(yōu)先級范圍為8-10,則當機器A上的任務執(zhí)行裝置X請求子任務時,優(yōu)先級范圍為1-7的任務類型為Y的任務將不會下發(fā)。
[0138](5)校驗子任務所屬任務是否符合該任務與其他任務之間的依賴限制。
[0139]子任務校驗子單元70122用于:根據(jù)子任務的信息判斷各子任務是否滿足下發(fā)條件。具體地,子任務校驗子單元70122用于:
[0140](I)校驗子任務是否為可強制下發(fā)的子任務。
[0141]例如,可設置一種子任務類型,對于屬于同一個任務的不同子任務,使該子任務類型的子任務有最高的下發(fā)優(yōu)先級。
[0142](2)校驗子任務的狀態(tài)是否為可被下發(fā)的狀態(tài)。例如,就緒狀態(tài)(READY)的子任務可被下發(fā),而任務狀態(tài)為成功狀態(tài)(SUCCESSFUL)的子任務不可被下發(fā)。
[0143](3)校驗子任務截止時間是否晚于任務調(diào)度裝置的請求時間。若是才可被下發(fā)。
[0144](4)校驗子任務是否滿足延遲時間。
[0145]例如,要求當前時間晚于子任務的截止時間加上延遲時間,才可被下發(fā)。
[0146]( 5 )校驗子任務是否滿足啟動時間。
[0147]例如,要求當前時間晚于子任務的當日啟動時間,才可被下發(fā)。
[0148](6)校驗子任務是否滿足該子任務與其他子任務之間的依賴關系。
[0149](7)校驗子任務是否滿足預設的嘗試次數(shù)限制。
[0150]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,
[0151](8)校驗重試的子任務是否達到重試等待時間。例如子任務的屬性還包括重試等待時間,所述重試等待時間用于限定子任務下發(fā)失敗時還需等待的最少時間。
[0152]執(zhí)行裝置校驗子單元70123用于:根據(jù)發(fā)送任務請求的任務執(zhí)行裝置的注冊信息,獲取所述任務執(zhí)行裝置的托管機信息,判斷所述托管機信息是否符合子任務對托管機的限定條件。具體地,執(zhí)行裝置校驗子單元70123可用于:
[0153](I)校驗發(fā)出任務請求的任務執(zhí)行裝置的標識信息是否滿足子任務的限定。例如子任務的屬性還包括任務執(zhí)行裝置的標識信息,用于對執(zhí)行該子任務的任務執(zhí)行裝置進行限定。
[0154](2)校驗發(fā)出任務請求的任務執(zhí)行裝置的當前狀態(tài)是否為有效。
[0155]( 3 )校驗發(fā)出任務請求的任務執(zhí)行裝置上同時運行的子任務是否滿足子任務的限制。
[0156](4)校驗子任務的優(yōu)先級是否滿足發(fā)出任務請求的任務執(zhí)行裝置對子任務的優(yōu)先級的限定條件。
[0157](5)校驗發(fā)出任務請求的任務執(zhí)行裝置上正在執(zhí)行的子任務的數(shù)目是否滿足被校驗的子任務的限定。
[0158]在本實施例的一個優(yōu)選實施方式中,依賴關系校驗用于獲取子任務的前置子任務,根據(jù)所述子任務與所述前置子任務之間的依賴關系,判斷所述子任務是否符合下發(fā)條件。
[0159]需要說明的是,具體的下發(fā)校驗邏輯中,各種校驗的順序并非嚴格的一成不變的順序,凡在本實施方式的精神和原則之內(nèi),任何步驟的增、刪和/或調(diào)換,均包含在本實施例所述的方法之內(nèi)。
[0160]下發(fā)單元7013,用于從子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置。
[0161]經(jīng)過上述下發(fā)校驗邏輯校驗后,對符合的子任務按照預設算法進行排序,將第一個子任務下發(fā)到所述發(fā)送任務請求的任務執(zhí)行裝置。
[0162]具體地,排序包括:對所述子任務集合中各子任務按照嘗試次數(shù)倒序排序、按照優(yōu)先級進行順序排序、按照周期類型數(shù)序進行排序或按照運行時間順序進行排序。
[0163]結果反饋單元7014,用于接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0164]當子任務執(zhí)行成功,可將該子任務移除子任務列表單獨存儲,或者修改子任務的屬性,標識出該子任務的狀態(tài)。若為后者,則子任務的屬性還可包括:子任務狀態(tài)和重試次數(shù)等信息。當接收到任務執(zhí)行裝置返回的執(zhí)行結果時,按照返回結果修改子任務的狀態(tài)信息。當執(zhí)行成功時,發(fā)送子任務執(zhí)行成功的信息,當任務調(diào)度裝置接收到子任務執(zhí)行成功的信息時,解析出子任務標識符,將子任務列表中該子任務的狀態(tài)改為成功狀態(tài)(SUCCESSFUL)。當執(zhí)行失敗時,發(fā)送子任務執(zhí)行失敗的信息,當任務調(diào)度裝置接收到子任務執(zhí)行失敗的信息時,解析出子任務和標識符,將子任務列表中該子任務的重試次數(shù)加I。
[0165]為了控制執(zhí)行失敗次數(shù)過多的子任務導至的效率低下,還可對子任務的重試次數(shù)進行限制,當子任務的重試次數(shù)達到預設的閾值時,則不再下發(fā)該子任務。
[0166]本實施例還提出了一種服務器,包括:顯示器、一個或者一個以上的處理器;存儲器;以及一個或者一個以上的程序,其中所述一個或者一個以上程序存儲于所述存儲器中,且經(jīng)配置以由所述一個或者一個以上處理器執(zhí)行,所述一個或者一個以上程序包含用于進行以下操作的指令:
[0167]接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;
[0168]根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同;
[0169]從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;
[0170]接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0171]本實施例還提出了一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)存儲有一個或者一個以上程序,所述一個或者一個以上程序被一個或者一個以上的處理器用來執(zhí)行一個分布式任務調(diào)度方法,所述方法包括:
[0172]接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息;
[0173]根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同;
[0174]從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置;
[0175]接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
[0176]本實施例所述的分布式任務調(diào)度裝置的技術方案中,通過下發(fā)校驗羅輯對子任務進行校驗,獲得通過校驗的子任務集合,能對對適用于不同任務執(zhí)行裝置的不同任務進行更精細的集中管理和調(diào)度,能實現(xiàn)不同任務之間的全局關聯(lián),能支持適用于不同任務執(zhí)行裝置的不同任務之間的依賴。
[0177]以上實施例提供的技術方案中的全部或部分內(nèi)容可以通過軟件編程實現(xiàn),其軟件程序存儲在可讀取的存儲介質(zhì)中,存儲介質(zhì)例如:計算機中的硬盤、光盤或軟盤。
[0178]以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
【權利要求】
1.一種分布式任務調(diào)度方法,其特征在于,包括: 接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息; 根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同; 從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置; 接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
2.如權利要求1所述的分布式任務調(diào)度方法,其特征在于,所述按照下發(fā)校驗邏輯對至少一個子任務進行校驗包括:按照預設順序對至少一個子任務進行任務校驗、子任務校驗、執(zhí)行裝置校驗和/或依賴關系校驗; 其中,所述任務校驗包括,根據(jù)子任務所屬任務的屬性,判斷子任務是否滿足任務調(diào)度請求; 所述子任務校驗包括,根據(jù)子任務的屬性判斷子任務是否滿足任務調(diào)度請求; 所述執(zhí)行裝置校驗包括,根據(jù)所述發(fā)送任務請求的任務執(zhí)行裝置的注冊信息,判斷子任務是否滿足任務調(diào)度請求; 所述依賴關系校驗包括,根據(jù)子任務與其他子任務之間的依賴關系,判斷子任務是否滿足任務調(diào)度請求。
3.權利要求1或2所述的分布式任務調(diào)度方法,其特征在于,所述從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置包括:對所述子任務集合中的子任務按照預設排序規(guī)則進行排序,將排名第一的子任務下發(fā)到所述任務執(zhí)行裝置。
4.如權利要求3所述的分布式任務調(diào)度方法,其特征在于,所述對所述子任務集合中的子任務按照預設排序規(guī)則進行排序包括,對所述子任務集合中各子任務按照嘗試次數(shù)倒序排序、按照優(yōu)先級進行順序排序、按照周期類型數(shù)序進行排序或按照運行時間順序進行排序。
5.如權利要求1或2所述的分布式任務調(diào)度方法,其特征在于,所述任務的屬性還包括生效時間和任務周期,所述至少一個子任務是通過對待調(diào)度的任務根據(jù)所述生效時間和所述任務周期,按照預設任務分解規(guī)則進行分解獲得。
6.如權利要求2所述的分布式任務調(diào)度方法,其特征在于,所述子任務的屬性還包括優(yōu)先級數(shù),所述任務調(diào)度請求還包括優(yōu)先級范圍,所述執(zhí)行裝置校驗還包括判斷子任務的優(yōu)先級數(shù)是否滿足所述任務調(diào)度請求的優(yōu)先級范圍。
7.一種分布式任務調(diào)度裝置,其特征在于,包括: 調(diào)度請求接收單元,用于接收任務執(zhí)行裝置發(fā)送的任務調(diào)度請求,其中所述任務調(diào)度請求包括任務類型和所述任務執(zhí)行裝置的標識信息; 下發(fā)校驗單元,用于根據(jù)所述任務調(diào)度請求,按照下發(fā)校驗邏輯對至少一個子任務進行校驗,獲得通過校驗的子任務集合,其中所述子任務的屬性包括:子任務標識符,子任務類型和所屬的任務的標識符,而任務的屬性包括:任務標識符,任務類型,子任務的子任務類型與所述子任務所屬的任務的任務類型相同; 下發(fā)單元,用于從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置; 結果反饋單元,用于接收到所述任務執(zhí)行裝置返回的執(zhí)行結果,依據(jù)執(zhí)行結果修改所述下發(fā)的子任務的屬性。
8.如權利要求7所述的分布式任務調(diào)度裝置,其特征在于,所述按照下發(fā)校驗邏輯對至少一個子任務進行校驗包括:按照預設順序對至少一個子任務進行任務校驗、子任務校驗、執(zhí)行裝置校驗和/或依賴關系校驗; 其中,所述任務校驗包括,根據(jù)子任務所屬任務的屬性,判斷子任務是否滿足任務調(diào)度請求; 所述子任務校驗包括,根據(jù)子任務的屬性判斷子任務是否滿足任務調(diào)度請求; 所述執(zhí)行裝置校驗包括,根據(jù)所述發(fā)送任務請求的任務執(zhí)行裝置的注冊信息,判斷子任務是否滿足任務調(diào)度請求; 所述依賴關系校驗包括,根據(jù)子任務與其他子任務之間的依賴關系,判斷子任務是否滿足任務調(diào)度請求。
9.權利要求7或8所述的分布式任務調(diào)度裝置,其特征在于,所述從所述子任務集合中選擇子任務下發(fā)到所述任務執(zhí)行裝置包括:對所述子任務集合中的子任務按照預設排序規(guī)則進行排序,將排名第一的子任務下發(fā)到所述任務執(zhí)行裝置。
10.如權利要求9所述的分布式任務調(diào)度裝置,其特征在于,所述對所述子任務集合中的子任務按照預設排序規(guī)則進行排序包括:對所述子任務集合中各子任務按照嘗試次數(shù)倒序排序、按照優(yōu)先級進行順序排序、按照周期類型數(shù)序進行排序或按照運行時間順序進行排序。
11.如權利要求7或8所述的分布式任務調(diào)度裝置,其特征在于,所述任務的屬性還包括生效時間和任務周期,所述至少一個子任務是通過對待調(diào)度的任務根據(jù)所述生效時間和所述任務周期,按照預設任務分解規(guī)則進行分解獲得。
12.如權利要求8所述的分布式任務調(diào)度裝置,其特征在于,所述子任務的屬性還包括優(yōu)先級數(shù),所述任務調(diào)度請求還包括優(yōu)先級范圍,所述執(zhí)行裝置校驗還包括判斷子任務的優(yōu)先級數(shù)是否滿足所述任務調(diào)度請求的優(yōu)先級范圍。
【文檔編號】G06F9/50GK104239148SQ201310223395
【公開日】2014年12月24日 申請日期:2013年6月6日 優(yōu)先權日:2013年6月6日
【發(fā)明者】王才平, 朱凱, 王宇琴, 羅奇 申請人:騰訊科技(深圳)有限公司