專利名稱:作業(yè)處理方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,更具體的說是涉及一種作業(yè)處理方法和系統(tǒng)。
背景技術(shù):
作業(yè)一般是指放在后臺運行并且不需要與用戶進行交互的、大數(shù)據(jù)量的處理程 序,批量作業(yè)即是指這樣的批量處理程序。在很多大中型企業(yè),尤其是金融、電信等領(lǐng)域的信息系統(tǒng)當(dāng)中,都存在大量的復(fù)雜 的自動化批量處理業(yè)務(wù)需求。顯著增多的多樣性的任務(wù)已代替了早先的批量作業(yè),并且作 業(yè)的規(guī)模與復(fù)雜性仍在持續(xù)的上揚。面對企業(yè)信息化的飛速發(fā)展的需要,對批量處理系統(tǒng) 在性能、開發(fā)框架統(tǒng)一化等方面的研究也越來越深入。目前,一種批量處理系統(tǒng),設(shè)置有總控端和多個應(yīng)用端組成的應(yīng)用集群,總控端是 批量作業(yè)處理的控制者和發(fā)起者,應(yīng)用端是完成批量作業(yè)的業(yè)務(wù)操作的接收者和執(zhí)行者。 由總控端獲取批量作業(yè)以及待處理的數(shù)據(jù),從數(shù)據(jù)庫中獲取批量作業(yè)的執(zhí)行順序,將作業(yè) 進行分發(fā),由應(yīng)用集群中的多個應(yīng)用端獲取并執(zhí)行所述作業(yè),從而完成作業(yè)要執(zhí)行的任務(wù)。 在這種批量處理系統(tǒng)中,由總控端將需要批量處理的作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,使得作 業(yè)分發(fā)和作業(yè)執(zhí)行分開,從而可提高批量作業(yè)的處理效率。但是,在這種批量處理系統(tǒng)中,雖然可以將批量作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,但是 一個作業(yè)只能在一個應(yīng)用端上執(zhí)行,當(dāng)應(yīng)用端需要處理的作業(yè)為一個大作業(yè)時,大作業(yè)即 是指對資源和時間要求很高,在執(zhí)行上有重復(fù)性的循環(huán)操作,或者執(zhí)行過程可能很耗時的 處理任務(wù),由于其處理過程復(fù)雜,涉及的數(shù)據(jù)量大,造成應(yīng)用端的處理壓力,即便采用所述 的批量處理系統(tǒng),仍然會影響作業(yè)處理的效率。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種作業(yè)處理方法和系統(tǒng),用于解決作業(yè)處理效率低的問題。為實現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案一種作業(yè)處理方法,所述方法包括當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆分算法;將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,以便于應(yīng)用集群中的可用應(yīng)用端獲 取所述拆分算法,并執(zhí)行所述拆分算法將所述大作業(yè)拆分成分作業(yè);接收所述可用應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端,以便于應(yīng)用端執(zhí)行所述 分作業(yè)。優(yōu)選地,所述方法還包括當(dāng)確定可用應(yīng)用端執(zhí)行所述拆分算法失敗時,將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送給 應(yīng)用端,以便于應(yīng)用端執(zhí)行所述大作業(yè)。
優(yōu)選地,確定可用應(yīng)用端執(zhí)行所述拆分算法失敗包括當(dāng)接收到可用應(yīng)用端經(jīng)中間服務(wù)器返回的錯誤信息時,確定可用應(yīng)用端執(zhí)行所述 拆分算法失敗。優(yōu)選地,當(dāng)所述待處理的大作業(yè)數(shù)量為多個時,所述將所述分作業(yè)經(jīng)中間服務(wù)器 分發(fā)給應(yīng)用集群中的應(yīng)用端包括將不同大作業(yè)拆分出的分作業(yè)按照原有大作業(yè)間的邏輯關(guān)系進行組合;將所述組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。 優(yōu)選地,所述拆分算法根據(jù)所述大作業(yè)實現(xiàn)的業(yè)務(wù)操作的業(yè)務(wù)規(guī)則定義。一種作業(yè)處理系統(tǒng),所述系統(tǒng)包括總控端、中間服務(wù)器和由應(yīng)用端組成的應(yīng)用集 群,所述總控端,用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆 分算法;將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,從所述中間服務(wù)器中獲取拆分后的 分作業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端;中間服務(wù)器,用于接收總控端發(fā)送的作業(yè)和拆分算法并向應(yīng)用端提供所述作業(yè)和 拆分算法,并將應(yīng)用端的執(zhí)行結(jié)果反饋給總控端;應(yīng)用端,用于執(zhí)行拆分算法將所述大作業(yè)拆分成分作業(yè),并經(jīng)中間服務(wù)器返回給 總控端;執(zhí)行總控端經(jīng)中間服務(wù)器發(fā)送的作業(yè)。優(yōu)選地,所述總控端包括獲取單元,用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義的拆分算 法;第一發(fā)送單元,用于將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器;第一接收單元,用于接收應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè);第二發(fā)送單元,用于將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。優(yōu)選地,所述總控端還包括確定單元,用于確定可用應(yīng)用端執(zhí)行所述拆分算法失敗;第三發(fā)送單元,用于將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送給應(yīng)用端。優(yōu)選地,所述確定單元具體用于當(dāng)接收應(yīng)用端經(jīng)中間服務(wù)器返回的錯誤信息時, 確定可用應(yīng)用端執(zhí)行所述拆分算法失敗。優(yōu)選地,所述總控端還包括組合單元,用于當(dāng)所述待處理的大作業(yè)數(shù)量為多個時,將不同大作業(yè)拆分出的分 作業(yè)按照原有大作業(yè)間的邏輯關(guān)系進行組合,則,所述第二發(fā)送單元還用于將所述組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群 中的應(yīng)用端。經(jīng)由上述的技術(shù)方案可知,與現(xiàn)有技術(shù)相比,本發(fā)明提供了一種作業(yè)處理方法和 系統(tǒng),當(dāng)待處理的作業(yè)為大作業(yè)時,總控端不直接發(fā)送所述大作業(yè),而是獲取所述大作業(yè)預(yù) 先定義好的拆分算法,將拆分算法發(fā)至應(yīng)用端,由應(yīng)用端執(zhí)行所述拆分算法,實現(xiàn)將所述大 作拆分成多個分作業(yè),拆分的個數(shù)根據(jù)拆分算法的要求而不同,之后將拆分后的分作業(yè)返 回給總控端,再由總控端將分作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,從而緩解了由一個應(yīng)用端執(zhí)行 大作業(yè)時的壓力,將大作業(yè)拆分為多個分作業(yè)由多個應(yīng)用端執(zhí)行,縮短了作業(yè)執(zhí)行時間,提高了作業(yè)的處理效率。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù) 提供的附圖獲得其他的附圖。圖1為本發(fā)明一種作業(yè)處理方法實施例1的流程圖;圖2為本發(fā)明一種作業(yè)處理方法實施例2的流程圖;圖3為本發(fā)明一種作業(yè)處理系統(tǒng)具體實施例的結(jié)構(gòu)示意圖;圖4為本發(fā)明一種作業(yè)處理系統(tǒng)中總控端的結(jié)構(gòu)示意圖。
具體實施例方式下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于 本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他 實施例,都屬于本發(fā)明保護的范圍。本發(fā)明實施例公開了一種作業(yè)處理方法和系統(tǒng),當(dāng)待處理的作業(yè)為大作業(yè)時,總 控端不直接發(fā)送所述大作業(yè),而是獲取所述大作業(yè)預(yù)先定義好的拆分算法,將拆分算法發(fā) 至應(yīng)用端,由應(yīng)用端執(zhí)行所述拆分算法,實現(xiàn)將所述大作拆分成多個分作業(yè),之后將拆分后 的分作業(yè)返回給總控端,再由總控端將分作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,從而緩解了由一個 應(yīng)用端執(zhí)行大作業(yè)時的壓力,將大作業(yè)拆分為多個分作業(yè)由多個應(yīng)用端執(zhí)行,縮短了執(zhí)行 時間,提高了作業(yè)的處理效率。參見圖1,示出了本發(fā)明一種作業(yè)處理方法實施例1的流程圖,可以包括以下步 驟步驟101 當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)的預(yù)先定義好的拆分算法。大作業(yè)是指在作業(yè)執(zhí)行中對資源和時間要求很高的處理程序,即當(dāng)執(zhí)行的作業(yè)有 重復(fù)性的循環(huán)操作,如執(zhí)行一樣的代碼,或者作業(yè)需要執(zhí)行很耗時的操作。以統(tǒng)計全國存款 余額這一作業(yè)為例,發(fā)現(xiàn)對于所有省市的統(tǒng)計方式是一樣的,這時就可以按照本發(fā)明提供 的作業(yè)處理方法將該統(tǒng)計全國存款余額這一大作業(yè)拆分為按省市統(tǒng)計余額的多個小作業(yè) 并發(fā)執(zhí)行,從而可以緩解應(yīng)用端壓力,縮短處理時間,提高處理效率。大作業(yè)的判斷可以是在作業(yè)處理之前,根據(jù)其執(zhí)行的業(yè)務(wù)操作內(nèi)容,即實現(xiàn)什么 樣的任務(wù)判斷得出,或者,在作業(yè)執(zhí)行過程中,查找出影響系統(tǒng)處理效率的作業(yè)即為大作 業(yè)。當(dāng)待處理的作業(yè)為大作業(yè)時,系統(tǒng)并不直接執(zhí)行所述大作業(yè),而是由總控端先獲 取為所述大作業(yè)預(yù)先定義好的拆分算法,由系統(tǒng)先執(zhí)行所述拆分算法,將大作業(yè)進行拆分。其中,所述拆分算法是根據(jù)所述大作業(yè)執(zhí)行的業(yè)務(wù)操作的業(yè)務(wù)規(guī)則定義的,在面 向?qū)ο笳Z言設(shè)計中,所述拆分算法具體為一段應(yīng)用程序。所述業(yè)務(wù)規(guī)則指出了作業(yè)可拆分的個數(shù),該拆分個數(shù)可以根據(jù)不同實際情況動態(tài)確定,即業(yè)務(wù)規(guī)則包括了不同規(guī)則下的作 業(yè)拆分個數(shù),例如,為過生日的人發(fā)送郵件這一大作業(yè),將根據(jù)過生日的人數(shù)進行拆分,而 每天過生日的人數(shù)不一樣,業(yè)務(wù)規(guī)則規(guī)定了每天過生日的人數(shù),也即作業(yè)可拆分的個數(shù)。拆 分算法即根據(jù)該業(yè)務(wù)規(guī)則進行配置編寫,以實現(xiàn)作業(yè)的可動態(tài)拆分。 步驟102 將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,以便于應(yīng)用集群中的可 用應(yīng)用端獲取所述拆分算法,并執(zhí)行所述拆分算法將所述大作業(yè)拆分成分作業(yè)??偪囟藢⑺霾鸱炙惴ㄒ约按笞鳂I(yè)發(fā)送至中間服務(wù)器,由應(yīng)用集群中的可用應(yīng)用 端來獲取,可用應(yīng)用端即是指應(yīng)用集群可用于執(zhí)行任務(wù)的應(yīng)用端,這可以根據(jù)各應(yīng)用端自 身運行情況和狀態(tài),由剩余資源高的應(yīng)用端來獲取??捎脩?yīng)用端執(zhí)行所述拆分算法,從而實現(xiàn)將大作業(yè)拆分為多個分作業(yè)。步驟103 接收所述可用應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè)。應(yīng)用端執(zhí)行拆分算法,將大作業(yè)拆分成多個小作業(yè),返回給中間服務(wù)器,由中間服 務(wù)器將所述分作業(yè)傳送給總控端,總控端即可接收到拆分完成的分作業(yè)。步驟104 將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端,以便于應(yīng)用 端獲取所述分作業(yè)并執(zhí)行??偪囟藢⒔邮盏姆肿鳂I(yè)發(fā)送至中間服務(wù)器,由于將原有大作業(yè)拆分成了多個分作 業(yè),因此可由應(yīng)用集群中的根據(jù)自身運行狀態(tài),剩余資源高的多個應(yīng)用端從中間服務(wù)器獲 取,并執(zhí)行所述分作業(yè)實現(xiàn)批量作業(yè)處理,從而完成該作業(yè)需要的業(yè)務(wù)操作。需要說明的是,本發(fā)明實施例中,由于作業(yè)以及涉及的拆分算法是指相應(yīng)的應(yīng)用 程序,系統(tǒng)在執(zhí)行作業(yè)的過程中,本領(lǐng)域技術(shù)人員應(yīng)該了解的是,其必然會涉及相應(yīng)數(shù)據(jù)的 處理,數(shù)據(jù)的傳送與處理,也是由系統(tǒng)中的總控端獲取、中間服務(wù)器暫存,由相應(yīng)應(yīng)用端執(zhí) 行的一個過程,其具體的實現(xiàn)過程與現(xiàn)有批量處理系統(tǒng)相似。還需要說明的是,當(dāng)待處理的大作業(yè)有多個時,且多個大作業(yè)間存在邏輯關(guān)系,則 不同大作業(yè)拆分出的分作業(yè)返回至總控端時,總控端按照原有大作業(yè)間的邏輯關(guān)系進行組 合,之后再將組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。在本發(fā)明實施例中,總控端不直接發(fā)送所述大作業(yè),而是獲取所述大作業(yè)預(yù)先定 義好的拆分算法,將所述拆分算法發(fā)至應(yīng)用端,由應(yīng)用端執(zhí)行所述拆分算法,實現(xiàn)將所述大 作業(yè)拆分成多個分作業(yè),拆分的個數(shù)根據(jù)拆分算法具體要求而不同,之后將拆分后的分作 業(yè)返回給總控端,再由總控端將分作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,從而縮短了作業(yè)執(zhí)行時間, 提高了作業(yè)處理效率。參見圖2,示出了本發(fā)明一種作業(yè)拆分方法具體實施例2的流程圖,可以包括以下 步驟步驟201 當(dāng)處理的作業(yè)為大作業(yè)時,總控端獲取所述大作業(yè)的預(yù)先定義好的拆
分算法。在處理大作業(yè)時,其中,總控端可以從調(diào)度模型庫中獲取所述大作業(yè)的預(yù)先定義 好的拆分算法。調(diào)度模型是為批量系統(tǒng)提供作業(yè)執(zhí)行順序與規(guī)則的可定制的靜態(tài)模型配 置,一般存儲于數(shù)據(jù)庫或文件中,例如可以是XML文件或文本文件。在調(diào)度模型庫中增加拆 分算法字段,以用于定制拆分算法。拆分算法可以具體為一段應(yīng)用程序,在面向?qū)ο蟮木幊陶Z言中,如java編程語言,拆分算法需實現(xiàn)基本的拆分算法接口,接口提供統(tǒng)一的拆分方法,其標(biāo)簽如下 public List < Job Execution Context > chunk (Job Execution Context context)throws Job Chunk Exception ;拆分算法需要按照設(shè)計好的接口規(guī)范進行開發(fā)。技術(shù)人員可以在拆分方法中根據(jù) 業(yè)務(wù)規(guī)則編寫拆分邏輯,為不同的大作業(yè)配置指定的拆分算法。算法執(zhí)行過程中,拆分方法 接收的參數(shù)來自于作業(yè)運行上下文Job Execution Context,算法執(zhí)行結(jié)果也存于上下文 中并放在上下文列表中再返回給總控端。需要說明的,拆分算法的實現(xiàn)可以采用多種編程語言,只要能實現(xiàn)拆分功能即可, 并不局限于java語言。需要說明的是,由于系統(tǒng)可以進行批量作業(yè)的處理,總控端接收的大作業(yè)數(shù)量可 以不止一個,系統(tǒng)可以同時進行多個大作業(yè)的拆分,如果大作業(yè)之間存在一定的邏輯關(guān)系, 那么拆分后的分作業(yè)也會按照該邏輯關(guān)系并發(fā)執(zhí)行。步驟202 總控端將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器。步驟203 應(yīng)用集群中的可用應(yīng)用端從中間服務(wù)器獲取所述拆分算法,并執(zhí)行所 述拆分算法。可用應(yīng)用端即是指應(yīng)用集群可用于執(zhí)行任務(wù)的應(yīng)用端,這可以根據(jù)各應(yīng)用端自身 運行情況和狀態(tài),由剩余資源高的應(yīng)用端來獲取。步驟204 所述應(yīng)用端判斷所述拆分算法是否執(zhí)行成功,如果是,進入步驟205,如 果否,則進入步驟209。步驟205 所述應(yīng)用端將通過執(zhí)行拆分算法將所述大作業(yè)拆分出的分作業(yè)返回給 中間服務(wù)器。步驟206 中間服務(wù)器將所述分作業(yè)反饋給總控端。步驟207 總控端將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端??偪囟藢⒎肿鳂I(yè)同樣發(fā)送至中間服務(wù)器,由應(yīng)用集群中的多個可用應(yīng)用端獲取所 述分作業(yè)。需要說明的是,當(dāng)待處理的大作業(yè)有多個時,且多個大作業(yè)間存在邏輯關(guān)系,則不 同大作業(yè)拆分出的分作業(yè)返回至總控端時,總控端按照原有大作業(yè)間的邏輯關(guān)系進行組 合,之后再將組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。還需要說明的是,在本實施例中,步驟206和步驟207,是由中間服務(wù)器將分作業(yè) 反饋給總控端,總控端在將分作業(yè)分發(fā)給應(yīng)用端。其他優(yōu)選的實施例還可以是,由總控端從 中間服務(wù)器主動獲取所述分作業(yè),再將所述分作業(yè)分發(fā)給應(yīng)用端。步驟208 應(yīng)用端執(zhí)行所述分作業(yè)。執(zhí)行分作業(yè)的過程即是實現(xiàn)相應(yīng)業(yè)務(wù)操作的過程,例如發(fā)送郵件,生成報表等實 際業(yè)務(wù),在執(zhí)行業(yè)務(wù)過程,其需要的相應(yīng)的數(shù)據(jù)的處理過程與現(xiàn)有技術(shù)批量系統(tǒng)處理數(shù)據(jù) 的過程類似,在此不再贅述。步驟209 應(yīng)用端生成錯誤信息并所述錯誤信息經(jīng)中間服務(wù)器返回給總控端。以java編程語言為例,拆分算法在執(zhí)行過程中如果出現(xiàn)異常,異常是java編程中 用于暴露錯誤的一種手段,則拋出作業(yè)拆分異常Job Chunk Exc印tion,算法執(zhí)行失敗,生 成錯誤信息,將所述錯誤信息放入作業(yè)上下文列表中,經(jīng)中間服務(wù)器返回給總控端。其中的錯誤信息包括拆分異常類型,以及拆分異常消息,所述的異常消息可以是錯誤日志,或者, 用于解釋該錯誤的術(shù)語。步驟210 總控端確認(rèn)所述拆分算法執(zhí)行失敗,將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送
給應(yīng)用端。步驟211 所述應(yīng)用端執(zhí)行所述大作業(yè)。拆分算法執(zhí)行失敗時,作業(yè)拆分失敗,系統(tǒng)可以直接處理所述大作業(yè)。需要說明的是,本實施例中,拆分算法執(zhí)行失敗時,則取消拆分算法,直接處理原 大作業(yè)。其還可以是,該大作業(yè)的執(zhí)行過程被吊起,直至異常問題被解決,重新執(zhí)行所述拆 分過程。還需要說明的是,在本實施例中,應(yīng)用端執(zhí)行算法失敗時,生成錯誤信息返回給總 控端,總控端確認(rèn)拆分算法執(zhí)行失敗,其還可以是,總控端在一定時間內(nèi)接收不到應(yīng)用端返 回的分作業(yè)信息,即可確認(rèn)拆分算法執(zhí)行失敗,本實施例所描述的確認(rèn)拆分算法執(zhí)行失敗 的方法只是其中一種方式。在本發(fā)明實施例中,待處理的作業(yè)為大作業(yè)時,總控端先獲取所述大作業(yè)預(yù)先定 義好的拆分算法,由應(yīng)用端執(zhí)行所述拆分算法,將大作業(yè)拆分成多個分作業(yè),拆分個數(shù)由根 據(jù)業(yè)務(wù)規(guī)則定義的拆分算法決定,之后將拆分后的分作業(yè)返回給總控端,再由總控端將分 作業(yè)分發(fā)給多個應(yīng)用端執(zhí)行,且當(dāng)大作業(yè)拆分失敗時,可以直接處理原有大作業(yè),通過本發(fā) 明的實施例,縮短了作業(yè)處理時間,從而提高了作業(yè)處理效率。參見圖3,示出了本發(fā)明一種作業(yè)處理系統(tǒng)具體實施例的結(jié)構(gòu)示意圖,所述系統(tǒng)包 括總控端301、中間服務(wù)器302以及由多個應(yīng)用端303組成的應(yīng)用集群304,其中總控端301 用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆 分算法;將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,從所述中間服務(wù)器中獲取拆分后的 分作業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。中間服務(wù)器302 用于接收總控端發(fā)送的作業(yè)和拆分算法并向應(yīng)用端提供所述作 業(yè)和拆分算法,并將應(yīng)用端的執(zhí)行結(jié)果反饋給總控端。應(yīng)用端303 用于執(zhí)行拆分算法將所述大作業(yè)拆分成分作業(yè),并經(jīng)中間服務(wù)器返 回給總控端;執(zhí)行總控端經(jīng)中間服務(wù)器發(fā)送的分作業(yè)。本發(fā)明所提供的系統(tǒng),總控端,中間服務(wù)器以及由應(yīng)用端組成的應(yīng)用集群,同樣具 有批量作業(yè)的處理的功能,同現(xiàn)有的批量處理系統(tǒng),在此不再贅述。其中,參見圖4,為本發(fā)明作業(yè)處理系統(tǒng)中總控端的結(jié)構(gòu)示意圖,所述總控端可以 包括獲取單元401,用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義的拆分算法。第一發(fā)送單元402,用于將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器。第一接收單元403,用于接收應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè)。第二發(fā)送單元404,用于將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。系統(tǒng)執(zhí)行所述拆分算法,當(dāng)執(zhí)行失敗時,所述總控端還包括確定單元405 用于確定可用應(yīng)用端執(zhí)行所述拆分算法失敗。第三發(fā)送單元406 用于將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送給應(yīng)用端。
其中,所述總控端的確定可用端執(zhí)行所述拆分算法失敗,確定單元405具體可以 是用于當(dāng)接收到可用應(yīng)用端經(jīng)中間服務(wù)器返回的錯誤信息時,確定可用應(yīng)用端執(zhí)行所述拆 分算法失敗。其還可以是當(dāng)在一定時間內(nèi)接收不到應(yīng)用端返回的分作業(yè)時,即確定拆分算 法執(zhí)行失敗。由于系統(tǒng)可以進行批量作業(yè)的處理,總控端接收的大作業(yè)數(shù)量可以不止一個,系 統(tǒng)可以同時進行多個大作業(yè)的拆分,如果大作業(yè)之間存在一定的邏輯關(guān)系,那么拆分后的 分作業(yè)也會按照該邏輯關(guān)系并發(fā)執(zhí)行,則所述總控端還可以包括組合單元,用于當(dāng)所述待處理的大作業(yè)數(shù)量為多個時,將不同大作業(yè)拆分出的分 作業(yè)按照原有大作業(yè)間的邏輯關(guān)系進行組合。則,所述第二發(fā)送單元還用于將所述組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集 群中的應(yīng)用端。在本發(fā)明實施例中,當(dāng)待處理的作業(yè)為大作業(yè)時,系統(tǒng)不直接執(zhí)行該作業(yè),而是由 總控端獲取預(yù)先為該大作業(yè)定義好的拆分算法,由應(yīng)用集群中的可用應(yīng)用端執(zhí)行所述拆分 算法,實現(xiàn)將大作業(yè)拆分成多個分作業(yè),并經(jīng)中間服務(wù)器返回給總控端,由總控端在將所述 分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的多個應(yīng)用端,并由多個應(yīng)用端并發(fā)執(zhí)行所述分作 業(yè),其中,中間服務(wù)器是用于信息的傳遞與分發(fā),采用本發(fā)明實施例縮短了作業(yè)執(zhí)行時間, 從而提高了作業(yè)的處理效率。本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他 實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置 而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說 明即可。 最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將 一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作 之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體 意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括 那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或
者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個......,,限定的要素,
并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。為了描述的方便,描述以上裝置時以功能分為各種單元分別描述。當(dāng)然,在實施本 發(fā)明時可以把各單元的功能在同一個或多個軟件和/或硬件中實現(xiàn)。通過以上的實施方式的描述可知,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可 借助軟件加必需的通用硬件平臺的方式來實現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì) 上或者說對現(xiàn)有技術(shù)做出貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品 可以存儲在存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機設(shè)備 (可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實施例或者實施例的某些 部分所述的方法。對所公開的實施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。 對這些實施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的 一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實施例中實現(xiàn)。因此,本發(fā)明將不會被限制于本文所示的這些實施例,而是要符合與本文所 公開的原理和新穎特點相一 致的最寬的范圍。
權(quán)利要求
1.一種作業(yè)處理方法,其特征在于,所述方法包括當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆分算法; 將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,以便于應(yīng)用集群中的可用應(yīng)用端獲取所 述拆分算法,并執(zhí)行所述拆分算法將所述大作業(yè)拆分成分作業(yè); 接收所述可用應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端,以便于應(yīng)用端執(zhí)行所述分作業(yè)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,還包括當(dāng)確定可用應(yīng)用端執(zhí)行所述拆分算法失敗時,將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送給應(yīng)用 端,以便于應(yīng)用端執(zhí)行所述大作業(yè)。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,確定可用應(yīng)用端執(zhí)行所述拆分算法失敗 包括當(dāng)接收到可用應(yīng)用端經(jīng)中間服務(wù)器返回的錯誤信息時,確定可用應(yīng)用端執(zhí)行所述拆分 算法失敗。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,當(dāng)所述待處理的大作業(yè)數(shù)量為多個時,所 述將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端包括將不同大作業(yè)拆分出的分作業(yè)按照原有大作業(yè)間的邏輯關(guān)系進行組合; 將所述組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述拆分算法根據(jù)所述大作業(yè)實現(xiàn)的業(yè) 務(wù)操作的業(yè)務(wù)規(guī)則定義。
6.一種作業(yè)處理系統(tǒng),其特征在于,所述系統(tǒng)包括總控端、中間服務(wù)器和由應(yīng)用端組成 的應(yīng)用集群,所述總控端,用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆分算 法;將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,從所述中間服務(wù)器中獲取拆分后的分作 業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端;中間服務(wù)器,用于接收總控端發(fā)送的作業(yè)和拆分算法并向應(yīng)用端提供所述作業(yè)和拆分 算法,并將應(yīng)用端的執(zhí)行結(jié)果反饋給總控端;應(yīng)用端,用于執(zhí)行拆分算法將所述大作業(yè)拆分成分作業(yè),并經(jīng)中間服務(wù)器返回給總控 端;執(zhí)行總控端經(jīng)中間服務(wù)器發(fā)送的作業(yè)。
7.根據(jù)權(quán)利要求6所述的系統(tǒng),其特征在于,所述總控端包括獲取單元,用于當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義的拆分算法; 第一發(fā)送單元,用于將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器; 第一接收單元,用于接收應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè); 第二發(fā)送單元,用于將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端。
8.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述總控端還包括 確定單元,用于確定可用應(yīng)用端執(zhí)行所述拆分算法失??;第三發(fā)送單元,用于將所述大作業(yè)經(jīng)中間服務(wù)器發(fā)送給應(yīng)用端。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述確定單元具體用于當(dāng)接收應(yīng)用端經(jīng) 中間服務(wù)器返回的錯誤信息時,確定可用應(yīng)用端執(zhí)行所述拆分算法失敗。
10.根據(jù)權(quán)利要求7所述的系統(tǒng),其特征在于,所述總控端還包括 組合單元,用于當(dāng)所述待處理的大作業(yè)數(shù)量為多個時,將不同大作業(yè)拆分出的分作業(yè) 按照原有大作業(yè)間的邏輯關(guān)系進行組合,則,所述第二發(fā)送單元還用于將所述組合后的分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的 應(yīng)用端。
全文摘要
本發(fā)明提供了作業(yè)處理方法和系統(tǒng),所述方法包括當(dāng)待處理的作業(yè)為大作業(yè)時,獲取所述大作業(yè)預(yù)先定義好的拆分算法;將所述拆分算法和大作業(yè)發(fā)送給中間服務(wù)器,以便于應(yīng)用集群中的可用應(yīng)用端獲取所述拆分算法,并執(zhí)行所述拆分算法將所述大作業(yè)拆分成分作業(yè);接收所述應(yīng)用端經(jīng)中間服務(wù)器返回的所述分作業(yè);將所述分作業(yè)經(jīng)中間服務(wù)器分發(fā)給應(yīng)用集群中的應(yīng)用端,以便于應(yīng)用端執(zhí)行所述分作業(yè)。通過本發(fā)明實施例,將一個大作業(yè)拆分成多個分作業(yè)由多個應(yīng)用端并發(fā)執(zhí)行,縮短了作業(yè)執(zhí)行時間,從而提高了作業(yè)的處理效率。
文檔編號G06F9/50GK102147750SQ20111002939
公開日2011年8月10日 申請日期2011年1月27日 優(yōu)先權(quán)日2011年1月27日
發(fā)明者朱玥, 聶經(jīng)緯, 鄧偉仲 申請人:中國農(nóng)業(yè)銀行股份有限公司