本發(fā)明涉及計算機應用技術(shù)領(lǐng)域,更為具體而言,涉及批處理任務的調(diào)度方法及裝置。
背景技術(shù):
隨著銀行應用系統(tǒng)的迅猛發(fā)展,對于資源的利用率以及系統(tǒng)的吞吐量的要求越來越高。由于批處理任務(由處理任務按照任務內(nèi)容組合而成的一組批量處理的處理任務)具有資源利用率高、吞吐量大等優(yōu)勢,因此,如何保證批處理任務的有效執(zhí)行已成為應用系統(tǒng)研發(fā)的關(guān)鍵性問題。
然而,目前的批處理框架通常基于c/s(客戶端/服務端)架構(gòu),因此,無法做到靈活部署,一旦服務端異常將導致批處理任務難以執(zhí)行,從而降低資源的利用率以及系統(tǒng)的吞吐量。
技術(shù)實現(xiàn)要素:
為解決上述技術(shù)問題,本發(fā)明提供一種批處理任務的調(diào)度方法及裝置。
一方面,本發(fā)明的實施方式提供了一種批處理任務的調(diào)度方法,所述方法包括:
從多個處理服務節(jié)點中識別任務分發(fā)節(jié)點;
調(diào)用所述任務分發(fā)節(jié)點執(zhí)行下述處理:根據(jù)批處理任務的屬性信息選取處理服務節(jié)點執(zhí)行所述批處理任務。
另一方面,本發(fā)明實施方式提供一種批處理任務的調(diào)度裝置,所述裝置包括:
第一識別模塊,用于從多個處理服務節(jié)點中識別任務分發(fā)節(jié)點;
第一調(diào)用模塊,用于調(diào)用所述任務分發(fā)節(jié)點執(zhí)行下述處理:根據(jù)批處理任務的屬性信息選取處理服務節(jié)點執(zhí)行所述批處理任務。
實施本發(fā)明提供的批處理任務的調(diào)度方法及裝置,可以構(gòu)成分布式的批處理任務調(diào)度框架,因此,即使個別處理服務節(jié)點發(fā)生異常也不會導致全部的批處理任務均無法執(zhí)行,從而保證批處理任務執(zhí)行的可靠性。
附圖說明
為了更清楚地說明本發(fā)明實施方式的技術(shù)方案,下面將對實施方式描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施方式,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明方法實施方式1的批處理任務的調(diào)度方法的流程圖;
圖2是根據(jù)本發(fā)明方法實施方式3的批處理任務的調(diào)度方法的流程圖;
圖3是根據(jù)本發(fā)明裝置實施方式1的批處理任務的調(diào)度裝置的結(jié)構(gòu)示意圖;
圖4是根據(jù)本發(fā)明裝置實施方式3的批處理任務的調(diào)度裝置的結(jié)構(gòu)示意圖。
具體實施方式
以下結(jié)合附圖和具體實施方式對本發(fā)明的各個方面進行詳細闡述。其中,在本發(fā)明的各個具體實施方式中,眾所周知的操作過程、模塊、單元及其相互之間的連接、鏈接、通信或操作沒有示出或未作詳細說明。
并且,所描述的特征、架構(gòu)或功能可在一個或一個以上實施例中以任何方式組合。
此外,本領(lǐng)域技術(shù)人員應當理解,下述的各種實施方式只用于舉例說明,而非用于限制本發(fā)明的保護范圍。本領(lǐng)域的技術(shù)人員還可以容易理解,本文所述和附圖所示的各實施方式中的模塊、單元或步驟可以按多種不同配置進行組合和設計。
對于未在本說明書中進行具體說明的技術(shù)術(shù)語,除非另有特定說明,都應以本領(lǐng)域最寬泛的意思進行解釋。
在本發(fā)明的說明書和權(quán)利要求書及上述附圖中的描述的一些流程中,包含了按照特定順序出現(xiàn)的多個操作,但是應該清楚了解,這些操作可以不按照其在本文中出現(xiàn)的順序來執(zhí)行或并行執(zhí)行,操作的序號如101、102等,僅僅是用于區(qū)分開各個不同的操作,序號本身不代表任何的執(zhí)行順序。另外,這些流程可以包括更多或更少的操作,并且這些操作可以按順序執(zhí)行或并行執(zhí)行。需要說明的是,本文中的“第一”、“第二”等描述,是用于區(qū)分不同的消息、設備、模塊等,不代表先后順序,也不限定“第一”和“第二”是不同的類型。
下面將結(jié)合附圖,對本發(fā)明實施方式中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施方式僅僅是本發(fā)明的一部分實施方式,而不是全部的實施方式?;诒景l(fā)明中的實施方式,本領(lǐng)域技術(shù)人員在沒有付出創(chuàng)造性勞動的前提下所獲得的所有其他實施方式,都屬于本發(fā)明保護的范圍。
【方法實施方式1】
圖1是根據(jù)本發(fā)明方法實施方式1的批處理任務的調(diào)度方法的流程圖。參見圖1,在本實施方式中,所述方法包括:
s11:從多個處理服務節(jié)點中識別任務分發(fā)節(jié)點。
s12:調(diào)用所述任務分發(fā)節(jié)點執(zhí)行下述處理:根據(jù)批處理任務的屬性信息選取處理服務節(jié)點執(zhí)行所述批處理任務。
其中,所述任務分發(fā)節(jié)點指:用于分發(fā)批處理任務的處理服務節(jié)點。
由于本發(fā)明可以構(gòu)成分布式的批處理任務調(diào)度框架,因此,即使個別處理服務節(jié)點發(fā)生異常也不會導致全部的批處理任務均無法執(zhí)行,從而保證批處理任務執(zhí)行的可靠性。
【方法實施方式2】
本實施方式所提供的方法包括了方法實施方式1中的全部內(nèi)容,在此不再贅述。在本實施方式中,所述屬性信息例如包括委托人信息。由此可以實現(xiàn)以委托人為粒度執(zhí)行批處理任務。
【方法實施方式3】
本實施方式所提供的方法包括了方法實施方式1或者方法實施方式2中的全部內(nèi)容,在此不再贅述。如圖2所示,本實施方式所提供的方法還包括以下處理:
s13:關(guān)閉異常的處理服務節(jié)點。
s14:識別所述異常的處理服務節(jié)點中是否包含所述任務分發(fā)節(jié)點,若否,則執(zhí)行s15,若是,則執(zhí)行s16。
s15:調(diào)用所述任務分發(fā)節(jié)點執(zhí)行下述處理:以委托人為粒度將已分配給所述異常的處理服務節(jié)點的批處理任務,分配給除所述異常的處理服務節(jié)點以外剩余的處理服務節(jié)點。
s16:從所述剩余的處理服務節(jié)點中,重新確定任務分發(fā)節(jié)點。
s17:調(diào)用重新確定的任務分發(fā)節(jié)點執(zhí)行下述處理:以委托人為粒度將已分配給所述異常的處理服務節(jié)點的批處理任務,分配給所述剩余的處理服務節(jié)點。
需要說明的是,本領(lǐng)域的技術(shù)人員可以根據(jù)實際需要調(diào)整本實施方式中各處理的執(zhí)行順序,例如,可以并發(fā)執(zhí)行子過程s11至s12,以及子過程s13至s17。
【方法實施方式4】
下面以一個任務分發(fā)節(jié)點為例,對本實施方式提供的批處理任務的調(diào)度方法的進行描述。具體地,在本實施方式中,所述方法包括:
處理1:接收用戶通過干預界面設定的批處理任務。
其中,該用戶還通過該干預界面設定批處理任務的執(zhí)行時間。
處理2:從多個處理服務節(jié)點中識別當前的任務分發(fā)節(jié)點。
處理3:調(diào)用該任務分發(fā)節(jié)點生成該批處理任務的調(diào)度信息(記載用于執(zhí)行該批處理任務的處理服務節(jié)點)。
具體而言,任務分發(fā)節(jié)點根據(jù)批處理任務的委托人信息分配處理服務節(jié)點。
處理4:識別當前時間是否為該批處理任務的執(zhí)行時間,若是,則執(zhí)行處理5,若否,則返回執(zhí)行處理4。
處理5:調(diào)用該任務分發(fā)節(jié)點執(zhí)行下述處理:根據(jù)該調(diào)度信息調(diào)用處理服務節(jié)點執(zhí)行該批處理任務。
具體而言,該任務分發(fā)節(jié)點執(zhí)行下述處理:
處理a:從數(shù)據(jù)庫中讀取該批處理任務中已完成的處理任務。
處理b:根據(jù)已完成的處理任務確定待執(zhí)行的處理任務。
處理c:根據(jù)該調(diào)度信息調(diào)用處理服務節(jié)點執(zhí)行該待執(zhí)行的處理任務,接收處理服務節(jié)點返回的處理結(jié)果,若該處理結(jié)果為處理成功,則執(zhí)行處理d,若該處理結(jié)果為處理失敗,則返回執(zhí)行處理b。
處理d:將該待執(zhí)行的處理寫入數(shù)據(jù)庫中并標記為已完成,返回執(zhí)行處理a。
同時,所述方法還包括與上述處理1至處理5并發(fā)執(zhí)行的下述處理:
處理6:關(guān)閉異常的處理服務節(jié)點。
處理7:識別所述異常的處理服務節(jié)點中是否包含該任務分發(fā)節(jié)點,若否,則執(zhí)行處理8,若是,則執(zhí)行處理9。
處理8:調(diào)用該任務分發(fā)節(jié)點執(zhí)行下述處理:以委托人為粒度將已分配給所述異常的處理服務節(jié)點的批處理任務,分配給除所述異常的處理服務節(jié)點以外剩余的處理服務節(jié)點。
處理9:從所述剩余的處理服務節(jié)點中,重新確定任務分發(fā)節(jié)點。
處理10:調(diào)用重新確定的任務分發(fā)節(jié)點執(zhí)行下述處理:以委托人為粒度將已分配給所述異常的處理服務節(jié)點的批處理任務,分配給所述剩余的處理服務節(jié)點。
在本實施方式中,在任何時間至多只有一個處理服務節(jié)點可以作為任務分發(fā)節(jié)點,這樣可以保證任務分發(fā)的準確性。并且,任何一個處理服務節(jié)點均可以作為任務分發(fā)節(jié)點,這樣可以保證批處理任務執(zhí)行的可靠性。
【裝置實施方式1】
圖3是根據(jù)本發(fā)明裝置實施方式1的批處理任務的調(diào)度裝置的結(jié)構(gòu)示意圖。參見圖3,批處理任務的調(diào)度裝置1包括:第一識別模塊11以及第一調(diào)用模塊12,具體地:
第一識別模塊11用于從多個處理服務節(jié)點中識別任務分發(fā)節(jié)點。
第一調(diào)用模塊12用于調(diào)用第一識別模塊11識別的任務分發(fā)節(jié)點執(zhí)行下述處理:根據(jù)批處理任務的屬性信息選取處理服務節(jié)點執(zhí)行所述批處理任務。
其中,所述任務分發(fā)節(jié)點指:用于分發(fā)批處理任務的處理服務節(jié)點。
由于本發(fā)明可以構(gòu)成分布式的批處理任務調(diào)度框架,因此,即使個別處理服務節(jié)點發(fā)生異常也不會導致全部的批處理任務均無法執(zhí)行,從而保證批處理任務執(zhí)行的可靠性。
【裝置實施方式2】
本實施方式所提供的裝置包括了裝置實施方式1中的全部內(nèi)容,在此不再贅述。在本實施方式中,所述屬性信息例如包括委托人信息。由此可以實現(xiàn)以委托人為粒度執(zhí)行批處理任務。
【裝置實施方式3】
本實施方式所提供的裝置包括了裝置實施方式1或裝置實施方式2中的全部內(nèi)容,在此不再贅述。如圖4所示,本實施方式所提供的批處理任務的調(diào)度裝置1還包括關(guān)閉模塊13、第二識別模塊14、確定模塊15、以及第二調(diào)用模塊16:
關(guān)閉模塊13用于關(guān)閉異常的處理服務節(jié)點。
第二識別模塊14用于識別關(guān)閉模塊13所關(guān)閉的異常的處理服務節(jié)點中是否包含所述任務分發(fā)節(jié)點。
確定模塊15用于在第二識別模塊14識別出所述異常的處理服務節(jié)點中包含所述任務分發(fā)節(jié)點的情形下,從除所述異常的處理服務節(jié)點以外剩余的處理服務節(jié)點中,重新確定任務分發(fā)節(jié)點。
第二調(diào)用模塊16用于調(diào)用確定模塊15重新確定的任務分發(fā)節(jié)點執(zhí)行下述處理:以委托人為粒度將已分配給所述異常的處理服務節(jié)點的批處理任務,分配給所述剩余的處理服務節(jié)點。
本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可全部通過軟件實現(xiàn),也可借助軟件結(jié)合硬件平臺的方式來實現(xiàn)。基于這樣的理解,本發(fā)明的技術(shù)方案對背景技術(shù)做出貢獻的全部或者部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,所述計算機軟件產(chǎn)品可以存儲在存儲介質(zhì)中,如rom/ram、磁碟、光盤等,包括若干指令用以使得一臺計算機設備(可以是個人計算機,服務器,智能手機或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施方式或者實施方式的某些部分所述的方法。
本文中所使用的“軟件”等詞均指一般意義上的任意類型的計算機編碼或者計算機可執(zhí)行指令集,可以運行所述編碼或者指令集來使計算機或其他處理器程序化以執(zhí)行如上所述的本發(fā)明的技術(shù)方案的各個方面。此外,需要說明的是,根據(jù)實施方式的一個方面,在執(zhí)行時實施本發(fā)明的技術(shù)方案的方法的一個或多個計算機程序不必須要在一臺計算機或處理器上,而是可以分布于多個計算機或者處理器中的模塊中,以執(zhí)行本發(fā)明的技術(shù)方案的各個方面。
計算機可執(zhí)行指令可以有許多形式,如程序模塊,可以由一臺或多臺計算機或是其他設備執(zhí)行。一般地,程序模塊包括例程、程序、對象、組件以及數(shù)據(jù)結(jié)構(gòu)等等,執(zhí)行特定的任務或是實施特定的抽象數(shù)據(jù)類型。特別地,在各種實施方式中,程序模塊的功能可以根據(jù)各個不同實施方式的需要進行結(jié)合或者拆分。
并且,本發(fā)明的技術(shù)方案可以體現(xiàn)為一種方法,并且已經(jīng)提供了所述方法的至少一個示例??梢酝ㄟ^任何一種合適的順序執(zhí)行動作,所述動作表現(xiàn)為所述方法中的一部分。因此,實施方式可以構(gòu)造成可以按照與所示出的執(zhí)行順序不同的順序執(zhí)行動作,其中,可以包括同時地執(zhí)行一些動作(盡管在示出的實施方式中,這些動作是連續(xù)的)。
本文所給出的和使用的定義,應當對照字典、通過引用而并入的文檔中的定義、和/或其通常意思進行理解。
在權(quán)利要求書中以及上述的說明書中,所有的過度短語,例如“包括”、“具有”、“包含”、“承載”、“具有”、“涉及”、“主要由…組成”以及類似詞語是應理解為是開放式的,即,包含但不限于。只有“由……組成”應該是封閉或半封閉的過度短語。
本發(fā)明說明書中使用的術(shù)語和措辭僅僅為了舉例說明,并不意味構(gòu)成限定。本領(lǐng)域技術(shù)人員應當理解,在不脫離所公開的實施方式的基本原理的前提下,對上述實施方式中的各細節(jié)可進行各種變化。因此,本發(fā)明的范圍只由權(quán)利要求確定,在權(quán)利要求中,除非另有說明,所有的術(shù)語應按最寬泛合理的意思進行理解。