作業(yè)流控制方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種作業(yè)流控制方法,用于分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置,在接收作業(yè)流啟動請求后,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù),然后根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù),之后,將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。通過本發(fā)明,任何一個作業(yè)流控制裝置異常時,其他作業(yè)流控制裝置可以從所述分布式內(nèi)存集群中讀取異常的作業(yè)流控制裝置存儲于所述分布式內(nèi)存集群中的數(shù)據(jù),并復(fù)原、執(zhí)行其作業(yè)流,保證作業(yè)流順利執(zhí)行,以避免由于一個作業(yè)流控制裝置異常就導(dǎo)致整個任務(wù)失敗的問題。
【專利說明】
作業(yè)流控制方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明數(shù)據(jù)處理技術(shù)領(lǐng)域,具體涉及一種作業(yè)流控制方法,一種作業(yè)流控制裝置,以及一種作業(yè)流控制系統(tǒng)。
【背景技術(shù)】
[0002]復(fù)雜作業(yè)流包括大量的作業(yè)及作業(yè)間的依賴關(guān)系。復(fù)雜作業(yè)流的控制需要占用大量系統(tǒng)資源,現(xiàn)有基于分布式架構(gòu)實現(xiàn)復(fù)雜作業(yè)流控制的技術(shù)方案。但現(xiàn)有方案中,每個節(jié)點均需配置數(shù)據(jù)庫,用于保存本節(jié)點在作業(yè)流執(zhí)行過程中所需的數(shù)據(jù),一旦有作業(yè)流控制節(jié)點發(fā)生異常,失去工作能力,就會導(dǎo)致其處理的任務(wù)失敗,且無法挽回。
【發(fā)明內(nèi)容】
[0003]針對現(xiàn)有技術(shù)中的上述缺陷,本發(fā)明提供一種作業(yè)流控制方法、一種作業(yè)流控制裝置、以及一種作業(yè)流控制系統(tǒng),以解決單一作業(yè)流控制節(jié)點發(fā)生異常導(dǎo)致的整個任務(wù)失敗的問題。
[0004]第一方面,本申請?zhí)峁┮环N作業(yè)流控制方法,用于分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置,包括:
[0005]接收作業(yè)流啟動請求;
[0006]根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù);
[0007]根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù);
[0008]將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。
[0009]可選的,在所述根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù)后,還包括:
[0010]在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù);
[0011 ]將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。
[0012]可選的,所述作業(yè)流控制方法,還包括:
[0013]向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。
[0014]可選的,所述作業(yè)流控制方法,還包括:
[0015]獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息;
[0016]在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流。
[0017]可選的,所述作業(yè)流控制方法,還包括:
[0018]在被選舉為接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流的作業(yè)流控制裝置后,從所述分布式內(nèi)存集群中讀取所述異常的作業(yè)流控制裝置存儲的數(shù)據(jù);
[0019]根據(jù)所述數(shù)據(jù)復(fù)原所述異常的作業(yè)流控制裝置的作業(yè)流并繼續(xù)執(zhí)行所述作業(yè)流。
[0020]第二方面,本發(fā)明提供一種作業(yè)流控制裝置,包括:
[0021 ]啟動請求接收模塊,用于接收作業(yè)流啟動請求;
[0022]初始數(shù)據(jù)獲取模塊,用于根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù);
[0023]實例化模塊,用于根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù);
[0024]數(shù)據(jù)發(fā)送模塊,用于將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。
[0025]可選的,所述作業(yè)流控制裝置,還包括:
[0026]實時數(shù)據(jù)生成模塊,用于在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù);
[0027]實時數(shù)據(jù)發(fā)送模塊,用于將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。
[0028]可選的,所述作業(yè)流控制裝置,還包括:
[0029]心跳信息發(fā)送模塊,用于向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。
[0030]可選的,所述作業(yè)流控制裝置,還包括:
[0031]狀態(tài)信息獲取模塊,用于獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息;
[0032]選舉模塊,用于在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)。
[0033]第三方面,本發(fā)明提供一種作業(yè)流控制系統(tǒng),包括:分布式作業(yè)流控制裝置集群和分布式內(nèi)存集群;
[0034]所述分布式作業(yè)流控制裝置集群中包括多個作業(yè)流控制裝置,所述分布式內(nèi)存集群中包括多個內(nèi)存,所述多個作業(yè)流控制裝置與所述多個內(nèi)存一一對應(yīng)連接;
[0035]其中,所述作業(yè)流控制裝置執(zhí)行本發(fā)明提供的任一項所述的作業(yè)流控制方法。
[0036]與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點:
[0037]本發(fā)明提供的作業(yè)流控制方法,用于分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置,在接收作業(yè)流啟動請求后,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù),然后根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù),之后,將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。相較于現(xiàn)有的將數(shù)據(jù)儲存于為每個作業(yè)流控制裝置單獨配置的數(shù)據(jù)庫中的方式,本發(fā)明中,將數(shù)據(jù)存儲于分布式內(nèi)存集群中,由于分布式內(nèi)存集群的特性之一在于數(shù)據(jù)同時儲存于多個內(nèi)存中,且所述作業(yè)流模板數(shù)據(jù)、作業(yè)流初始化數(shù)據(jù)和作業(yè)流實例數(shù)據(jù)等是足以能夠復(fù)原所述作業(yè)流控制裝置執(zhí)行的作業(yè)流的數(shù)據(jù),因此,任何一個作業(yè)流控制裝置異常時,其他作業(yè)流控制裝置可以從所述分布式內(nèi)存集群中讀取異常的作業(yè)流控制裝置存儲于所述分布式內(nèi)存集群中的數(shù)據(jù),并復(fù)原、執(zhí)行其作業(yè)流,保證作業(yè)流順利執(zhí)行,以避免由于一個作業(yè)流控制裝置異常就導(dǎo)致整個任務(wù)失敗的問題。
[0038]進一步的,通過在作業(yè)流執(zhí)行過程中將作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群,可以保證當(dāng)某一作業(yè)流控制裝置異常時,其他作業(yè)流控制裝置可以根據(jù)所述作業(yè)流實時狀態(tài)數(shù)據(jù)復(fù)原異常的所述作業(yè)流控制裝置的作業(yè)流至最新狀態(tài),避免從作業(yè)流初始狀態(tài)開始執(zhí)行而導(dǎo)致的系統(tǒng)資源浪費,以及提高任務(wù)執(zhí)行效率。
【附圖說明】
[0039]為了更清楚地說明本發(fā)明【具體實施方式】或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對【具體實施方式】或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹。在所有附圖中,類似的元件或部分一般由類似的附圖標(biāo)記標(biāo)識。
[0040]圖1示出了本發(fā)明提供的一種作業(yè)流控制方法實施例的流程圖;
[0041]圖2示出了本發(fā)明提供的一種作業(yè)流控制裝置實施例的結(jié)構(gòu)示意圖;
[0042]圖3示出了本發(fā)明提供的一種作業(yè)流控制系統(tǒng)第一實施例的結(jié)構(gòu)示意圖;
[0043]圖4示出了本發(fā)明提供的一種作業(yè)流控制系統(tǒng)第二實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0044]下面將結(jié)合附圖對本發(fā)明技術(shù)方案的實施例進行詳細的描述。以下實施例僅用于更加清楚地說明本發(fā)明的技術(shù)方案,因此只是作為示例,而不能以此來限制本發(fā)明的保護范圍。本申請能夠以很多不同于在此描述的其它方式來實施,本領(lǐng)域技術(shù)人員可以在不違背本申請內(nèi)涵的情況下做類似推廣,因此本申請不受下面公開的具體實施的限制。
[0045]需要注意的是,除非另有說明,本申請使用的技術(shù)術(shù)語或者科學(xué)術(shù)語應(yīng)當(dāng)為本發(fā)明所屬領(lǐng)域技術(shù)人員所理解的通常意義。
[0046]現(xiàn)有基于分布式架構(gòu)實現(xiàn)復(fù)雜作業(yè)流控制的技術(shù)方案中,每個節(jié)點均需配置數(shù)據(jù)庫(分布式構(gòu)架中的節(jié)點是指具有獨立運算能力的處理裝置,如處理器、計算機、服務(wù)器等都可稱為節(jié)點),用于保存本節(jié)點在作業(yè)流執(zhí)行過程中所需的數(shù)據(jù),一旦有作業(yè)流控制節(jié)點發(fā)生異常,失去工作能力,就會導(dǎo)致其處理的任務(wù)失敗(多個作業(yè)流整體上可以視為任務(wù)),且無法挽回,鑒于上述問題,本發(fā)明提供一種作業(yè)流控制方法、一種作業(yè)流控制裝置、以及一種作業(yè)流控制系統(tǒng),以解決單一作業(yè)流控制節(jié)點發(fā)生異常導(dǎo)致的整個任務(wù)失敗的問題,下面結(jié)合附圖對本發(fā)明的實施例進行說明。
[0047]請參考圖1,其為本發(fā)明提供的一種作業(yè)流控制方法實施例的流程圖,該方法的執(zhí)行主體為分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置,所述作業(yè)流控制方法包括以下步驟:
[0048]步驟SlOl:接收作業(yè)流啟動請求;
[0049]本步驟,作業(yè)流控制裝置接收作業(yè)流啟動請求,以根據(jù)所述作業(yè)流啟動請求啟動相應(yīng)的作業(yè)流,所述作業(yè)流由一組互相依賴、關(guān)聯(lián)的作業(yè)組成,所述作業(yè)本質(zhì)上是可供處理器處理的業(yè)務(wù)。本發(fā)明中,所述作業(yè)流啟動請求可以由任務(wù)管理單元如負載控制裝置等發(fā)送,負載控制裝置根據(jù)任務(wù)的運算量和各個作業(yè)流控制裝置的負載情況,將任務(wù)分解為多個任務(wù)流發(fā)送到多個作業(yè)流控制裝置進行處理。
[0050]步驟S102:根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)。
[0051]本步驟,作業(yè)流控制裝置根據(jù)所述作業(yè)流啟動請求,獲取執(zhí)行作業(yè)流所需的作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù),其中,作業(yè)流模板是根據(jù)業(yè)務(wù)處理的需求,將不同的業(yè)務(wù)處理定義為不同的作業(yè),根據(jù)業(yè)務(wù)處理的流程,將不同作業(yè)之間的接續(xù)、依賴、關(guān)聯(lián)等關(guān)系使用DAG(有向無環(huán)圖)的方式進行表述而形成的模板,所述作業(yè)流模板數(shù)據(jù)即為用于描述所述作業(yè)流模板的數(shù)據(jù),可以采用JSON格式進行表述;所述作業(yè)流初始化數(shù)據(jù)是對所述作業(yè)流模板的輸入數(shù)據(jù),例如:輸入文件路徑、輸入業(yè)務(wù)參數(shù)、作業(yè)調(diào)度時間、作業(yè)調(diào)度策略參數(shù)等。
[0052]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流啟動請求中包含有所述作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù),在本步驟中,解析所述作業(yè)流啟動請求,即可獲取所述作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)。
[0053]以上實施例中提供了一種獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)的實施方式,容易想到的是,所述作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)也可以不隨所述作業(yè)流啟動請求傳輸,也可以是在所述作業(yè)流啟動請求中攜帶所述作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)的線索信息,所述作業(yè)流控制裝置根據(jù)所述線索信息,到相應(yīng)的數(shù)據(jù)庫中調(diào)取相應(yīng)的作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)。以上為本申請的變更實施方式,除此之外,現(xiàn)有技術(shù)中其他的變更實施方式,也在本申請的保護范圍之內(nèi),此處不再--贅述。
[0054]步驟S103:根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù)。
[0055]在通過步驟S102,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù)后,所述作業(yè)流控制裝置即可根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,在實例化過程中,會產(chǎn)生作業(yè)流實例數(shù)據(jù),如作業(yè)流實例標(biāo)識號、作業(yè)流模板中的每個作業(yè)模板的實例化數(shù)據(jù),例如作業(yè)實例標(biāo)識號、作業(yè)類型、作業(yè)執(zhí)行參數(shù)、作業(yè)執(zhí)行策略等數(shù)據(jù)。
[0056]步驟S104:將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。
[0057]所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)共同構(gòu)成了作業(yè)流在所述作業(yè)流控制裝置中執(zhí)行時的初始完整信息,此時,將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲,由于分布式內(nèi)存集群的特性之一在于數(shù)據(jù)同時儲存于多個內(nèi)存中,如此,若所述作業(yè)流控制裝置在執(zhí)行所述作業(yè)流時異常,失去工作能力,所述分布式作業(yè)流控制裝置集群中其他正常的作業(yè)流控制裝置即可從所述分布式內(nèi)存集群中讀取上述數(shù)據(jù),并根據(jù)上述數(shù)據(jù)完整的復(fù)原所述作業(yè)流,并執(zhí)行所述作業(yè)流,從而保證所有作業(yè)流能夠全部完成,解決現(xiàn)有技術(shù)中一個作業(yè)流控制節(jié)點異常就會導(dǎo)致整個任務(wù)失敗的問題。
[0058]其中,所述分布式內(nèi)存集群是通過虛擬化技術(shù),將多個位于不同計算機或服務(wù)器上的內(nèi)存集中起來組成的內(nèi)存資源池。同一數(shù)據(jù)在所述分布式內(nèi)存集群中會保存多份,任何一臺計算機或服務(wù)器故障,其他計算機或服務(wù)器上還有備份數(shù)據(jù),不用擔(dān)心數(shù)據(jù)丟失,而且一般會有磁盤數(shù)據(jù)作為備份。
[0059]至此,通過步驟SlOl至步驟S104,完成了本發(fā)明提供的一種作業(yè)流控制方法實施例的流程。
[0060]相較于現(xiàn)有的將數(shù)據(jù)儲存于為每個作業(yè)流控制裝置單獨配置的數(shù)據(jù)庫中的方式,本發(fā)明中,將數(shù)據(jù)存儲于分布式內(nèi)存集群中,由于分布式內(nèi)存集群的特性之一在于數(shù)據(jù)同時儲存于多個內(nèi)存中,且所述作業(yè)流模板數(shù)據(jù)、作業(yè)流初始化數(shù)據(jù)和作業(yè)流實例數(shù)據(jù)等是足以能夠復(fù)原所述作業(yè)流控制裝置執(zhí)行的作業(yè)流的數(shù)據(jù),因此,任何一個作業(yè)流控制裝置異常時,其他作業(yè)流控制裝置可以從所述分布式內(nèi)存集群中讀取異常的作業(yè)流控制裝置存儲于所述分布式內(nèi)存集群中的數(shù)據(jù),并復(fù)原、執(zhí)行其作業(yè)流,保證作業(yè)流順利執(zhí)行,以避免由于一個作業(yè)流控制裝置異常就導(dǎo)致整個任務(wù)失敗的問題。
[0061]考慮到通過上述步驟SlOl至步驟S104,只能將作業(yè)流復(fù)原到作業(yè)流執(zhí)行初始階段,對于作業(yè)流執(zhí)行過程中作業(yè)流控制裝置異常的情形,在復(fù)原后只能重新執(zhí)行,這樣會存在較大的資源浪費,同時降低整個任務(wù)的執(zhí)行效率,因此,在本申請?zhí)峁┑囊粋€實施例中,在所述根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù)后,還包括:
[0062]在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù);
[0063]將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。
[0064]其中,所述作業(yè)流實時狀態(tài)數(shù)據(jù),包括作業(yè)流正在執(zhí)行的作業(yè)節(jié)點標(biāo)識、當(dāng)前作業(yè)的執(zhí)行狀態(tài)信息、以及已經(jīng)執(zhí)行完成的作業(yè)狀態(tài)信息等。
[0065]這樣,通過在作業(yè)流執(zhí)行過程中將作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群,可以保證當(dāng)某一作業(yè)流控制裝置異常時,其他作業(yè)流控制裝置可以根據(jù)所述作業(yè)流實時狀態(tài)數(shù)據(jù)復(fù)原異常的所述作業(yè)流控制裝置的作業(yè)流至最新狀態(tài),避免從作業(yè)流初始狀態(tài)開始執(zhí)行而導(dǎo)致的系統(tǒng)資源浪費,以及提高任務(wù)執(zhí)行效率。
[0066]為了在所述分布式作業(yè)流控制裝置集群中的某一個或多個作業(yè)流控制裝置異常時,其他正常的作業(yè)流控制裝置能夠獲知異常信息進而復(fù)原、接續(xù)其作業(yè)流,在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制裝置通過心跳保持機制傳遞其狀態(tài)信息如異常、掉線等,所述的作業(yè)流控制方法,還包括:
[0067]向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。
[0068]以上提供了兩種實施方式,一種是在有負載控制裝置的情形下,向所述負載控制裝置發(fā)送心跳信息,所述心跳信息是每隔預(yù)定時間間隔發(fā)送的信息,所述負載控制裝置根據(jù)所述心跳信息判斷所述作業(yè)流控制裝置的狀態(tài),如,在設(shè)定的時間閾值內(nèi)不能接收到某一作業(yè)流控制裝置的心跳信息,即可判斷所述作業(yè)流控制裝置掉線或異常,所述負載控制裝置在獲知某一作業(yè)流控制裝置異常時,即可通知一個正常的作業(yè)流控制裝置復(fù)原、接續(xù)其作業(yè)流;另一種是不通過所述負載控制裝置,由所述分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置接收心跳信息,并根據(jù)所述心跳信息判斷是否有作業(yè)流控制裝置異常。以上僅示例性提供了兩種實施方式,此外,現(xiàn)有技術(shù)中其他的變更實施方式,也在本申請的保護范圍之內(nèi),此處不再--贅述。
[0069]當(dāng)所述分布式作業(yè)流控制裝置集群中的某一個或多個作業(yè)流控制裝置異常時,需要其他正常的作業(yè)流控制裝置復(fù)原、接續(xù)其工作流,在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制方法,還包括:
[0070]獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息;
[0071]在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流。
[0072]其中,所述獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息,可以是從所述負載控制裝置獲取,也可以是根據(jù)接收的心跳信息進行判斷獲知,所述分布式作業(yè)流控制裝置集群通過選舉方式選舉出正常的作業(yè)流控制裝置進行接續(xù),其中,所述選舉方式可以通過分布式選舉算法實施,如bully算法、環(huán)算法等,此均為現(xiàn)有技術(shù)中的成熟技術(shù),此處不再一一贅述,其均在本申請的保護范圍之內(nèi)。
[0073]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制方法,還包括:
[0074]在被選舉為接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流的作業(yè)流控制裝置后,從所述分布式內(nèi)存集群中讀取所述異常的作業(yè)流控制裝置存儲的數(shù)據(jù);
[0075]根據(jù)所述數(shù)據(jù)復(fù)原所述異常的作業(yè)流控制裝置的作業(yè)流并繼續(xù)執(zhí)行所述作業(yè)流。本實施例示例性說明了所述作業(yè)流控制裝置接續(xù)其他作業(yè)流控制裝置的作業(yè)流的方式,其中,所述異常的作業(yè)流控制裝置存儲的數(shù)據(jù)包括作業(yè)流模板數(shù)據(jù)、作業(yè)流初始化數(shù)據(jù)、作業(yè)流實例數(shù)據(jù)和作業(yè)流實時狀態(tài)數(shù)據(jù)等,所述作業(yè)流控制裝置根據(jù)上述數(shù)據(jù)即可復(fù)原相應(yīng)的作業(yè)流并接續(xù)執(zhí)行所述作業(yè)流。
[0076]在上述的實施例中,提供了一種作業(yè)流控制方法,與之相對應(yīng)的,本申請還提供一種作業(yè)流控制裝置。請參考圖2,其為本發(fā)明提供的一種作業(yè)流控制裝置實施例的示意圖。由于裝置實施例基本相似于方法實施例,所以描述得比較簡單,相關(guān)之處參見方法實施例的部分說明即可。下述描述的裝置實施例僅僅是示意性的。
[0077]本發(fā)明提供的一種作業(yè)流控制裝置實施例,包括:啟動請求接收模塊101,用于接收作業(yè)流啟動請求;
[0078]初始數(shù)據(jù)獲取模塊102,用于根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù);
[0079]實例化模塊103,用于根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù);
[0080]數(shù)據(jù)發(fā)送模塊104,用于將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。
[0081 ]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制裝置,還包括:
[0082]實時數(shù)據(jù)生成模塊,用于在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù);
[0083]實時數(shù)據(jù)發(fā)送模塊,用于將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。
[0084]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制裝置,還包括:
[0085]心跳信息發(fā)送模塊,用于向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。
[0086]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制裝置,還包括:
[0087]狀態(tài)信息獲取模塊,用于獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息;
[0088]選舉模塊,用于在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)。
[0089]在本申請?zhí)峁┑囊粋€實施例中,所述作業(yè)流控制裝置,還包括:
[0090]數(shù)據(jù)讀取模塊,用于在被選舉為接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流的作業(yè)流控制裝置后,從所述分布式內(nèi)存集群中讀取所述異常的作業(yè)流控制裝置存儲的數(shù)據(jù);
[0091]作業(yè)流復(fù)原模塊,用于根據(jù)所述數(shù)據(jù)復(fù)原所述異常的作業(yè)流控制裝置的作業(yè)流并繼續(xù)執(zhí)行所述作業(yè)流。
[0092]以上,為本發(fā)明提供的一種作業(yè)流控制裝置實施例說明。
[0093]本發(fā)明還提供一種作業(yè)流控制系統(tǒng),包括:分布式作業(yè)流控制裝置集群和分布式內(nèi)存集群;
[0094]所述分布式作業(yè)流控制裝置集群中包括多個作業(yè)流控制裝置,所述分布式內(nèi)存集群中包括多個內(nèi)存,所述多個作業(yè)流控制裝置與所述多個內(nèi)存一一對應(yīng)連接;
[0095]其中,所述作業(yè)流控制裝置執(zhí)行本申請?zhí)峁┑娜我豁椬鳂I(yè)流控制方法。
[0096]請參考圖3和圖4,其分別為本發(fā)明提供的一種作業(yè)流控制系統(tǒng)第一實施例的結(jié)構(gòu)示意圖和本發(fā)明提供的一種作業(yè)流控制系統(tǒng)第二實施例的結(jié)構(gòu)示意圖,兩者的差別在于第二實施例中含有負載控制裝置,用于根據(jù)任務(wù)的運算量和各個作業(yè)流控制裝置的負載情況,進行任務(wù)的分解、作業(yè)流的分配等,所述作業(yè)流控制裝置可以是CPU等處理器,由于所述作業(yè)流控制裝置執(zhí)行本申請?zhí)峁┑娜我豁椬鳂I(yè)流控制方法,因此,相關(guān)之處不再贅述,請參考上述作業(yè)流控制方法實施例的說明進行理解。
[0097]需要說明的是,本發(fā)明附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
[0098]本發(fā)明實施例所提供的作業(yè)流控制裝置可以是計算機程序產(chǎn)品,包括存儲了程序代碼的計算機可讀存儲介質(zhì),所述程序代碼包括的指令可用于執(zhí)行前面方法實施例中所述的方法,具體實現(xiàn)可參見方法實施例,在此不再贅述。
[0099]所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統(tǒng)、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過程,在此不再贅述。
[0100]在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實現(xiàn)。以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,又例如,多個單元或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0101]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目的。
[0102]另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0103]所述功能如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器(R0M,Read-0nly Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
[0104]最后應(yīng)說明的是:以上各實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實施例對本發(fā)明進行了詳細的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進行修改,或者對其中部分或者全部技術(shù)特征進行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求和說明書的范圍當(dāng)中。
【主權(quán)項】
1.一種作業(yè)流控制方法,用于分布式作業(yè)流控制裝置集群中的作業(yè)流控制裝置,其特征在于,包括: 接收作業(yè)流啟動請求; 根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù); 根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù); 將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。2.根據(jù)權(quán)利要求1所述的作業(yè)流控制方法,其特征在于,在所述根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù)后,還包括: 在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù); 將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。3.根據(jù)權(quán)利要求1或2所述的作業(yè)流控制方法,其特征在于,還包括: 向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。4.根據(jù)權(quán)利要求1或2所述的作業(yè)流控制方法,其特征在于,還包括: 獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息; 在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流。5.根據(jù)權(quán)利要求4所述的作業(yè)流控制方法,其特征在于,還包括: 在被選舉為接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)流的作業(yè)流控制裝置后,從所述分布式內(nèi)存集群中讀取所述異常的作業(yè)流控制裝置存儲的數(shù)據(jù); 根據(jù)所述數(shù)據(jù)復(fù)原所述異常的作業(yè)流控制裝置的作業(yè)流并繼續(xù)執(zhí)行所述作業(yè)流。6.一種作業(yè)流控制裝置,其特征在于,包括: 啟動請求接收模塊,用于接收作業(yè)流啟動請求; 初始數(shù)據(jù)獲取模塊,用于根據(jù)所述作業(yè)流啟動請求,獲取作業(yè)流模板數(shù)據(jù)和作業(yè)流初始化數(shù)據(jù); 實例化模塊,用于根據(jù)所述作業(yè)流初始化數(shù)據(jù)對所述作業(yè)流模板數(shù)據(jù)進行實例化,并生成作業(yè)流實例數(shù)據(jù); 數(shù)據(jù)發(fā)送模塊,用于將所述作業(yè)流模板數(shù)據(jù)、所述作業(yè)流初始化數(shù)據(jù)和所述作業(yè)流實例數(shù)據(jù)發(fā)送給分布式內(nèi)存集群進行存儲。7.根據(jù)權(quán)利要求6所述的作業(yè)流控制裝置,其特征在于,還包括: 實時數(shù)據(jù)生成模塊,用于在作業(yè)流執(zhí)行過程中,實時生成作業(yè)流實時狀態(tài)數(shù)據(jù); 實時數(shù)據(jù)發(fā)送模塊,用于將所述作業(yè)流實時狀態(tài)數(shù)據(jù)發(fā)送給所述分布式內(nèi)存集群進行存儲。8.根據(jù)權(quán)利要求6或7所述的作業(yè)流控制裝置,其特征在于,還包括: 心跳信息發(fā)送模塊,用于向負載控制裝置或其他作業(yè)流控制裝置發(fā)送心跳信息。9.根據(jù)權(quán)利要求6或7所述的作業(yè)流控制裝置,其特征在于,還包括: 狀態(tài)信息獲取模塊,用于獲取所述分布式作業(yè)流控制裝置集群中其他作業(yè)流控制裝置的狀態(tài)信息; 選舉模塊,用于在根據(jù)所述狀態(tài)信息獲知所述分布式作業(yè)流控制裝置集群中有至少一個異常的作業(yè)流控制裝置后,與所述分布式作業(yè)流控制裝置集群中的其他正常的作業(yè)流控制裝置共同通過選舉方式選舉出至少一個正常的作業(yè)流控制裝置接續(xù)所述異常的作業(yè)流控制裝置的作業(yè)。10.一種作業(yè)流控制系統(tǒng),其特征在于,包括:分布式作業(yè)流控制裝置集群和分布式內(nèi)存集群; 所述分布式作業(yè)流控制裝置集群中包括多個作業(yè)流控制裝置,所述分布式內(nèi)存集群中包括多個內(nèi)存,所述多個作業(yè)流控制裝置與所述多個內(nèi)存一一對應(yīng)連接; 其中,所述作業(yè)流控制裝置執(zhí)行權(quán)利要求1至權(quán)利要求5任一項所述的作業(yè)流控制方法。
【文檔編號】G06F9/50GK105955820SQ201610248931
【公開日】2016年9月21日
【申請日】2016年4月20日
【發(fā)明人】肖華飚
【申請人】北京云宏信達信息科技有限公司