專利名稱:一種多批處理任務的調(diào)度方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)據(jù)處理技術(shù)領(lǐng)域,尤其涉及一種多批處理任務的調(diào)度方法 及系統(tǒng)。
*狄<
批處理任務是指在計算機上無須人工干預而執(zhí)行系列程序的作業(yè),其無 須人工交互,所有的輸入數(shù)據(jù)預先設(shè)置于程序或命令行參數(shù)中。
現(xiàn)有的一種批處理任務調(diào)度系統(tǒng),其通過將對多個批處理任務的調(diào)度寫
入批處理文件,然后通過Windows任務計劃按時調(diào)度,由于調(diào)用時間固定, 所以只能按時觸發(fā)各個批處理任務。但是,由于實際中整個系統(tǒng)的運行時間 不固定,所以調(diào)度一個批處理任務的時間也是不固定的,因此在固定時點觸 發(fā)批處理任務,不能很好地滿足系統(tǒng)無人工干預自動進行處理的要求。
另外,由于預先配置好對多個批處理任務的調(diào)度,導致每個應用服務設(shè) 備調(diào)用的批處理任務固定,且多個批處理任務間的調(diào)用順序固定,而且,當 系統(tǒng)中的一(或多)臺服務設(shè)備出現(xiàn)故障時,配置在該服務設(shè)備上的批處理 任務將無法運行,造成系統(tǒng)運行多批處理任務的效率低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供了一種多批處理任務的調(diào)度方法及系統(tǒng),使得應 用服務設(shè)備可以根據(jù)調(diào)度規(guī)則靈活調(diào)度多批處理任務中的批處理任務,提高 系統(tǒng)運行多批處理任務的效率。
根據(jù)本發(fā)明的一方面,提供了一種多批處理任務的調(diào)度方法,該方法包
括
觸發(fā)所述多批處理任務的調(diào)度;
根據(jù)預設(shè)定的調(diào)度規(guī)則,調(diào)度所述多批處理任務中的運行狀態(tài)為準備運 行或運行失敗的批處理任務。根據(jù)本發(fā)明的另一方面,提供了一種多批處理任務的調(diào)度系統(tǒng),包括數(shù)
據(jù)庫服務設(shè)備和至少一個應用服務設(shè)備,其中,所述應用服務設(shè)備,包括 觸發(fā)單元,用于觸發(fā)所述多批處理任務的調(diào)度;
批處理調(diào)度單元,用于所述觸發(fā)單元觸發(fā)對所述多批處理任務的調(diào)度時, 根據(jù)預設(shè)定的調(diào)度規(guī)則,調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或 運行失敗的批處理任務。
在本發(fā)明中,應用服務設(shè)備通過調(diào)度規(guī)則來調(diào)度多批處理任務中的批處 理任務,使得該組批處理任務能夠在系統(tǒng)中的多個應用服務設(shè)備上協(xié)調(diào)工作, 實現(xiàn)系統(tǒng)中各應用服務設(shè)備的運行均衡,避免單個應用服務設(shè)備的運行壓力, 從而提高系統(tǒng)運行多批處理任務的效率。
圖1是本發(fā)明實施例一的多批處理任務的調(diào)度方法流程示意圖。
圖2是本發(fā)明實施例二的多批處理任務的調(diào)度方法流程示意圖。
圖3是本發(fā)明實施例的調(diào)度一個批處理任務的過程示意圖。
圖4是本發(fā)明實施例三的多批處理任務的調(diào)度系統(tǒng)結(jié)構(gòu)示意圖。
圖5是本發(fā)明實施例的調(diào)度系統(tǒng)的應用服務設(shè)備的結(jié)構(gòu)示意圖。
圖6是圖5所示的應用服務設(shè)備的一批處理調(diào)度單元的結(jié)構(gòu)示意圖。
圖7是圖5所示的應用服務設(shè)備的另一批處理調(diào)度單元的結(jié)構(gòu)示意圖。
具體實施例方式
下面結(jié)合附圖對本發(fā)明進行進一 步地說明。
圖l是本發(fā)明實施例一的多批處理任務的調(diào)度方法流程示意圖。參考圖1, 該方法包括
S101,觸發(fā)多批處理任務的調(diào)度。
本發(fā)明實施例中,觸發(fā)對一組批處理任務的調(diào)度的方式可以包括以下 根據(jù)一特殊批處理任務的運行狀態(tài)觸發(fā);標志文件到達觸發(fā);手工觸發(fā); 或定時觸發(fā)。此處,可以是當其他批處理任務或程序完成后,生成一標志文 件。當然,也可以采用其他現(xiàn)有技術(shù)的觸發(fā)方式,觸發(fā)多批處理任務的調(diào)度。 步驟S102,根據(jù)預設(shè)定的調(diào)度規(guī)則,調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或運行失敗的批處理任務。
可選地,本發(fā)明實施例中的調(diào)度規(guī)則包括以下之一或任意組合 根據(jù)所述多批處理任務中的批處理任務的運行時長信息確定要調(diào)度的批 處理任務;
任務;
根據(jù)所述多批處理任務中的批處理任務的運行IP地址信息確定要調(diào)度的 批處理任務;
根據(jù)所述多批處理任務中的批處理任務的優(yōu)先級信息確定要調(diào)度的批處 理任務。
本實施例中,可選地,應用服務設(shè)備在4丸行步驟S102之前,還包括執(zhí)行 判斷正在運行的批處理任務的數(shù)量是否達到預定值的步驟。當判斷為沒有達
的批處理任務。當判斷為達到預定值時,則不再調(diào)度批處理任務。其中,批 處理任務指的是上述一組批處理任務中的批處理任務。
圖2是本發(fā)明實施例二的多批處理任務的調(diào)度方法流程示意圖。
本實施例以一種金融風險解決方案為例進行描述。該金融風險解決方案 能夠協(xié)調(diào)地處理信用風險、資產(chǎn)負債風險、交易風險、和市場流動性風險, 并對資產(chǎn)組合中的資產(chǎn)負債風險和信用風險進行資金轉(zhuǎn)移定價。
本實施例中, 一組批處理任務(稱為RunID)用來完成金融風險解決方 案中的某些特定任務,其可以用來分析資產(chǎn)組合數(shù)據(jù)表、產(chǎn)品集合ID、及對 應的各種日期。分析的方法可以是凈收入模擬,敏感性分析等。
參考圖2,本實施例的方法包括以下步驟
步驟S201,獲取會計區(qū)間批處理任務的運行狀態(tài)。
本實施例中,每一批處理任務的運行狀態(tài)都可分為四種,分別為準備 運行,用9表示;正在運行,用l表示;運行成功,用2表示;運行失敗, 用3表示。系統(tǒng)初始化時會將一組RunID的數(shù)據(jù)信息配置進數(shù)據(jù)庫服務設(shè)備, 系統(tǒng)決定要運行這組RunID時,會將所有RunID的運行狀態(tài)置為9。系統(tǒng)根
獲取到會計區(qū)間批處理任務的運行狀態(tài)為9時,執(zhí)行步驟S202。獲取到會計區(qū)間批處理任務的運行狀態(tài)為2時,執(zhí)行步驟S207。獲取到會計區(qū)間批 處理任務的運行狀態(tài)為其他狀態(tài)(例如,運行失敗)時,執(zhí)行步驟S215。
步驟S202,獲取到會計區(qū)間批處理任務的運行狀態(tài)為9時,將會計區(qū)間 批處理任務的運行狀態(tài)置為1。
本發(fā)明實施例中,會計區(qū)間批處理任務的運行狀態(tài)置為1后,還包括將 當前數(shù)據(jù)庫的時間置為該會計區(qū)間批處理任務的開始時間,結(jié)束時間置為空, IP地址信息置為本應用服務設(shè)備的IP地址信息。
步驟S203,清空數(shù)據(jù)庫的結(jié)果表。
步驟S204,設(shè)置數(shù)據(jù)庫的數(shù)據(jù)日期。
本發(fā)明實施例中,步驟S203和步驟S204屬于初始化數(shù)據(jù)庫。 步驟S205,滾動會計區(qū)間。
本實施例中,滾動會計區(qū)間包括計算滾動的天數(shù)X和調(diào)用滾動會計區(qū) 間命令。其中,天數(shù)乂=數(shù)據(jù)日期-當前賬期的開始日期+1 。例如,采用Kamakura 公司的風險管理系統(tǒng)時,調(diào)用滾動會計區(qū)間命令時,將第5個參數(shù)設(shè)置為X, 采用krm—capp 3 username password CF X, krm一capp為運4亍一可才丸4亍禾呈序的命 令。此處,第1個參數(shù)配置一個常數(shù),決定是運行一個為會計區(qū)間批處理任 務還是一個RunID等;第2個參數(shù)是用戶名;第3個參數(shù)是密碼;第4個參 數(shù)是會計區(qū)間批處理任務或RunID的名稱;第5個是滾動的天數(shù)X,若是運 行RunID,則沒有第5個參數(shù)。
步驟S206,將會計區(qū)間批處理任務的運行狀態(tài)置為2。
本實施例中,會計區(qū)間批處理任務的運行狀態(tài)置為2,表示會計區(qū)間批處 理任務運行完畢,優(yōu)選執(zhí)行步驟S215后,返回應用服務設(shè)備調(diào)度會計區(qū)間批 處理任務的起始點。可選地,也可以是不執(zhí)行步驟S215,直接返回應用服務 設(shè)備調(diào)度會計區(qū)間批處理任務的起始點。
步驟S207,查找容器組的容器。
本實施例中,對于應用服務設(shè)備,容器組里用于可裝載要運行的RunID 的命令行,從而可根據(jù)該命令行去啟動一個批處理任務的調(diào)用。其中,容器 組中的每個容器至少包括兩個字段, 一個字段用于裝載RunID的運行狀態(tài), 另 一字段用于裝載調(diào)用該RunID的命令行。
步驟S208,查找到一個容器,根據(jù)其內(nèi)的RunID的運行狀態(tài),判斷該RunID是否正在運行。判斷為是,執(zhí)行步驟S209。判斷為否,執(zhí)行步驟S213。 本實施例中,獲取到會計區(qū)間批處理任務的運行狀態(tài)為2時,可以是遍
歷應用服務設(shè)備的容器組中的每一個容器。判斷查找到的容器是否正在運行
RunID,可通過容器中存儲的該RunID的運行狀態(tài)來判斷。當運行狀態(tài)為1
時,表示該RunID正在運行。
步驟S209,獲取該容器中的該RunID的運行狀態(tài)。若運行狀態(tài)為2時,
執(zhí)行步驟S210,然后執(zhí)行步驟S212。若運行狀態(tài)為3時,執(zhí)行步驟S211,然
后執(zhí)行步驟S212。若返回值為1時,執(zhí)行步驟S214。
步驟S210,該RunID運行正常結(jié)束,將運行狀態(tài)2和結(jié)束時間寫入到凄t據(jù)庫。
步驟S211,該RunID運行異常結(jié)束,將運行狀態(tài)3和結(jié)束時間寫入到數(shù) 據(jù)庫。
步驟S212,清空該容器的字段內(nèi)容。
此處,包括調(diào)用RunID的命令行,及該RunID的運行狀態(tài)。
步驟S213,調(diào)度一個新的RunID的命令行到該容器,以運行該RunID。
本發(fā)明實施例中,可選地,可以根據(jù)應用服務設(shè)備的性能和數(shù)據(jù)庫服務 設(shè)備中的數(shù)據(jù)庫能夠同時運行的總的RunID個數(shù),設(shè)定每臺應用服務設(shè)備能 夠同時啟動RunID的個數(shù)。在執(zhí)行步驟S213之前,還會執(zhí)行判斷該應用服務 設(shè)備當前是否達到運行RunID數(shù)的預定值(例如,判斷容器組中各容器中的 RunID的運行狀態(tài)),如果達到了應用服務設(shè)備就不會再調(diào)起新的RunID,直 接執(zhí)行步驟S215,這樣能夠保證該應用服務設(shè)備正常的滿負荷運行,實現(xiàn)多 個應用服務設(shè)備的均衡負載。本發(fā)明實施例中,預定值優(yōu)選設(shè)定為每臺應用 服務設(shè)備能夠同時運行RunID的最大個數(shù)。
本實施例中,根據(jù)預設(shè)定的調(diào)度規(guī)則調(diào)度RunID。其中,調(diào)度規(guī)則包括 以下之一或〗壬意組合
根據(jù)RunID的運行時長信息確定要調(diào)度的RunID;
根據(jù)RunID的運行狀態(tài)確定要調(diào)度的RunID;
根據(jù)RunID中記錄的IP地址信息確定要調(diào)度的RunID;
根據(jù)RunID的業(yè)務優(yōu)先級信息確定要調(diào)度的RunID。
本實施例中,可選地,RunID業(yè)務優(yōu)先級信息可以是根據(jù)RunID的運行時長和/其占用系統(tǒng)資源多少來配置。
本實施例中,可根據(jù)RunID的運行狀態(tài),優(yōu)選最先調(diào)用準備運行的RunID, 其次是運行失敗過的RunID??蛇x地,也可以是先調(diào)用運行失敗過的RunID, 然后調(diào)用準備運行的RunID。
本實施例中,依據(jù)靜態(tài)規(guī)劃原理利用RunID的運行時長信息確定一組 RunID中要調(diào)用的RunID。由于每個運行的RunID會記錄開始時間和結(jié)束時 間,且每個RunID的運行時間每次變化不太大,所以可參考歷史RunID運行 的時間??蛇x地,可以設(shè)置運行時長值的幾個范圍段,從數(shù)據(jù)庫中獲取RunID 的運行時長信息,然后根據(jù)RunID的運行時長判斷屬于哪個范圍段,從而確 定是否調(diào)度該RunID??蛇x地,也可以是才艮據(jù)每個RunID的運行時長來為每 個RunID配置優(yōu)先級信息,根據(jù)優(yōu)先級信息來確定是否調(diào)度該RunID。優(yōu)選 運行時間較長的RunID為優(yōu)先級高的RunID,這樣可使整體RunID運行的時 間最少。
下面對本實施例使用的靜態(tài)規(guī)劃原理進行描述。
設(shè)r個RunID運行時間為tl tr,共有n個應用服務設(shè)備。設(shè)每個應用服 務設(shè)備的運,時間為Tl Tn。因為服務器為并行運行,所以總耗時為Tmax。 約束條件為^ "rmax 。求Tmax的最小值Tmin的目標序列為
分析得出Tmin-f>,,即當各臺應用服務設(shè)備上的運行時間較為平均 時,能夠達到總ii行時間泉小。每個應用服務設(shè)備空閑時,優(yōu)先調(diào)度運行時 間最長的RunID,可以使各應用服務設(shè)備的運行時間近似實現(xiàn)平均,從而總 耗時最短。例如,A、 B兩臺應用服務設(shè)備,有4個RunlD: tl、 t2、 t3、 t4, 執(zhí)行時間分別為11、 8、 1、 4小時,則A首先調(diào)度tl, B調(diào)度t2,當t2執(zhí)行 完畢后,B調(diào)度t4 ,當tl執(zhí)行完畢后,A調(diào)度t3 ,則最后運行完畢耗時12 小時(兩臺應用服務設(shè)備均為12小時),耗時最小。所以當應用服務設(shè)備每 次調(diào)起運行狀態(tài)為準備運行的RunID中運行時間最長的,能夠?qū)崿F(xiàn)總運行時 間最短。
本發(fā)明實施例中,調(diào)用運行狀態(tài)為運行失敗的RunID,其4企查原來運行 該RunID的IP地址是否為現(xiàn)在準備調(diào)用它的應用服務設(shè)備的IP地址,如果 不是,則可以調(diào)用(即當一個RunID在一臺機器上運行失敗后,下次則換一臺機器執(zhí)行,排除機器故障導致RunID運行失敗的可能)。這使得在一臺應用 服務設(shè)備上運行失敗的RunID有在另外一臺應用服務設(shè)備上運行成功的可 能。即使某臺應用服務設(shè)備出現(xiàn)故障,其它應用服務設(shè)備還是能將所有的 RunID運行完成。應用服務設(shè)備調(diào)用到一個新的RunID后,便開始運行該調(diào) 用的RunID 。
步驟S214,判斷是否遍歷了容器組的每一個容器。如果是,執(zhí)行步驟S215。 如果不是,返回執(zhí)行步驟S207。接下來查找容器組中還沒有遍歷的下一個容器。
步驟S215,暫停執(zhí)行一段時間。
本發(fā)明實施例中,該步驟是可選地,但本發(fā)明實施例優(yōu)選執(zhí)行該步驟。 應用服務設(shè)備的進程執(zhí)行完為會計區(qū)間批處理任務后,暫停一段時間再進行 工作,優(yōu)選時間范圍是1分鐘。應用服務設(shè)備遍歷一次容器組后,也暫停一 段時間再進行工作,優(yōu)選時間范圍是1分鐘。本發(fā)明實施例中的進程"暫停 執(zhí)行一段時間"是由于每個批處理任務的運行時間都是大于15分鐘的,所以 如果不停地獲取批處理任務的狀態(tài),大部分情況下批處理任務的狀態(tài)都是正 在運行。如果每次暫停1 5分鐘,即減少了消耗系統(tǒng)資源,得到的批處理任 務狀態(tài)改變的效率也不會有減少。當然
如圖2所示,本發(fā)明實施例中,暫停執(zhí)行一段時間后,回到執(zhí)行步驟S201, 獲取會計區(qū)間批處理任務的運行狀態(tài)??蛇x地,本發(fā)明實施例中,如果應用 服務設(shè)備獲取到會計區(qū)間批處理任務的運行狀態(tài)為運行成功,那么當應用服 務設(shè)備執(zhí)行完步驟S214和步驟S215后,還可以是回到執(zhí)行步驟S207,查找 容器組中的容器。
下面對進程調(diào)用一個新的RunID來運行的工作過程進行進一步地描述。 圖3是本發(fā)明實施例的調(diào)度一個批處理任務的過程示意圖。參考圖3,其包括
步驟S301,查找一條用于調(diào)用RunID的命令行,該RunID記錄的應用服 務設(shè)備IP地址不是本應用服務設(shè)備IP地址,且其運行狀態(tài)為9或3,優(yōu)選為 3。本實施例中,記錄的應用服務設(shè)備IP地址是指該RunID被調(diào)用并運行一 次,便會記錄下最近一次調(diào)用該RunID的應用服務設(shè)備的IP地址。
步驟S302,是否查找到一個滿足上述條件的批處理任務的命令行。如果 查找到,執(zhí)行步驟S303。如果沒有查找到,則執(zhí)行步驟S308。步驟S303,將該命令行填入容器組中的指定容器。 步驟S304,根據(jù)該命令行,啟動批處理任務的調(diào)用。 此處,應用服務設(shè)備動態(tài)產(chǎn)生一進程執(zhí)行該操作。
步驟S305,是否啟動成功。如果是執(zhí)行步驟S306。如果否,執(zhí)行步驟 S307。
步驟S306,將該批處理任務的運行狀態(tài)1,開始時間(數(shù)據(jù)庫當前時間), 結(jié)束時間(置空)和本應用服務設(shè)備的IP地址信息寫入數(shù)據(jù)庫。
本實施例中,數(shù)據(jù)庫和容器中都存儲有該批處理任務的運行狀態(tài)。 步驟S307,將該指定容器中的命令清空。 步驟S308,不進行處理。
步驟S306、步驟S307和步驟S308被執(zhí)行后,應用服務設(shè)備結(jié)束當前進 程的作業(yè)。
本發(fā)明實施例還提供了 一種多批處理任務調(diào)度的系統(tǒng),該系統(tǒng)包括數(shù)據(jù) 庫服務設(shè)備和至少一個應用服務設(shè)備。圖4是本發(fā)明實施例三的多批處理任 務的調(diào)度系統(tǒng)結(jié)構(gòu)示意圖。如圖4所示,多批處理任務的調(diào)度系統(tǒng)1包括數(shù) 據(jù)庫服務設(shè)備10和3個應用服務設(shè)備22、 24和26,其中
數(shù)據(jù)庫服務設(shè)備10,用于存儲多個批處理任務的數(shù)據(jù)信息。
本發(fā)明實施例中,系統(tǒng)初始化時會將所有批處理任務的數(shù)據(jù)信息配置進 數(shù)據(jù)庫服務設(shè)備IO中的數(shù)據(jù)庫。本實施例中,每一批處理任務的運行狀態(tài)都 可分為四種,分別為準備運行,用9表示;正在運行,用1表示;運行成 功,用2表示;運行失敗,用3表示。當系統(tǒng)決定要運行批處理任務時,系 統(tǒng)1會將所有的批處理業(yè)務的運行狀態(tài)置為準備運行9。
圖5是本方面實施例的調(diào)度系統(tǒng)的應用服務設(shè)備的結(jié)構(gòu)示意圖。其他應 用服務設(shè)備與應用服務設(shè)備22的結(jié)構(gòu)相同。如圖5所示,應用服務設(shè)備22 包括
觸發(fā)單元220,用于觸發(fā)對所述多批處理任務的調(diào)度;
批處理調(diào)度單元222,用于所述觸發(fā)單元220觸發(fā)對所述多批處理任務的
調(diào)度時,根據(jù)預設(shè)定的調(diào)度規(guī)則調(diào)度所述多批處理任務中的運行狀態(tài)為準備
運行或運行失敗的批處理任務。
圖6是圖5所示的應用服務設(shè)備的一批處理調(diào)度單元的結(jié)構(gòu)示意圖。如圖6所示,批處理調(diào)度單元222,包括第一判斷單元2220,獲取單元2221, 第二判斷單元2223和調(diào)度執(zhí)行單元2225。下面對各單元功能模塊進行進一步 地說明。
第一判斷單元2220,用于觸發(fā)單元220觸發(fā)對所述多批處理任務的調(diào)度 時,判斷所述應用服務設(shè)備中正在運行的批處理任務的數(shù)量是否達到預定值, 所述批處理任務屬于所述多批處理任務。
獲取單元2221,用于第一判斷單元2227判斷為沒有達到時,獲取所述多 批處理任務中的批處理任務的運行狀態(tài),判斷為達到預設(shè)值時,則不執(zhí)行操 作。此處,批處理調(diào)度單元222將不調(diào)度新的RunID。這樣可以保證應用服 務設(shè)備的滿負荷運行,從而實現(xiàn)多個應用服務設(shè)備的均衡負載。本實施例中, 預設(shè)值優(yōu)選為應用服務設(shè)備中可運行的批處理任務的最大數(shù)。
第二判斷單元2223,用于根據(jù)調(diào)度規(guī)則、獲取單元2221獲取的所述運行 狀態(tài)判斷是否調(diào)度所述批處理任務;
調(diào)度執(zhí)行單元2225,用于當?shù)诙袛鄦卧?223判斷為是時,調(diào)度所述批 處理任務,所述批處理任務的運行狀態(tài)為準備運行或運行失敗。
本發(fā)明實施例中,任一應用服務設(shè)備22、 24或26,用于根據(jù)調(diào)度原則調(diào)
中,可選地,所述調(diào)度規(guī)則包括以下之一或任意組合
根據(jù)批處理任務的優(yōu)先級信息確定要調(diào)度的批處理任務; 根據(jù)批處理任務的運行時長信息確定要調(diào)度的批處理任務; 根據(jù)批處理任務的運行狀態(tài)確定要調(diào)度的批處理任務; 根據(jù)批處理任務中記錄的IP地址信息確定要調(diào)用的批處理任務。 本發(fā)明實施例中,可以是優(yōu)先調(diào)度運行狀態(tài)為準備運行的批處理任務, 其次調(diào)用運行狀態(tài)為運行失敗的批處理任務;也可以是優(yōu)先調(diào)度運行狀態(tài)為 運行失敗的批處理任務,其次調(diào)用運行狀態(tài)為準備運行的批處理任務。
可選地,批處理調(diào)度單元222的獲取單元2221還可是用于獲取所述多 批處理任務中的批處理任務的運行狀態(tài)、運行時長信息。則所述第二判斷單 元2223,用于根據(jù)調(diào)度規(guī)則、獲取的運行狀態(tài)和運行時長信息判斷是否調(diào)度 所述批處理任務。本發(fā)明實施例中,可以是優(yōu)先調(diào)度運行時長較長的批處理 任務。進一步地,還可以是優(yōu)先調(diào)度運行狀態(tài)為準備運行、運行時長較長的批處理任務。
可選地,批處理調(diào)度單元222的獲取單元2221還可以是用于獲取所述批 處理任務的運行狀態(tài)、優(yōu)先級信息。則所述第二判斷單元2223,用于4艮據(jù)調(diào) 度規(guī)則和獲取的運行狀態(tài)和優(yōu)先級信息確定是否調(diào)度所述批處理任務。本實 施例中,可以根據(jù)各批處理任務的歷史運行時長信息、和/或占用系統(tǒng)資源多 少來設(shè)置每個批處理任務的優(yōu)先級信息。,當然設(shè)置優(yōu)先級信息的方式包括但 不限于上述方式。
可選地,批處理調(diào)度單元222的獲取單元2221還可以是用于獲取所述批 處理任務的運行狀態(tài)、運行IP地址信息。則所述第二判斷單元2223,用于根 據(jù)調(diào)度規(guī)則、獲取的運行狀態(tài)和運行IP地址信息確定是否調(diào)度所述批處理任 務。
可選地,批處理調(diào)度單元222的獲取單元2221還可以是用于獲取所述批 處理任務的運行狀態(tài)、運行IP地址信息和優(yōu)先級信息。則所述第二判斷單元 2223,用于根據(jù)調(diào)度規(guī)則、獲取的運行狀態(tài)、運行IP地址信息和優(yōu)先級信息 確定是否調(diào)度所述批處理任務。
可選地,批處理調(diào)度單元222的獲取單元2221還可以是用于獲取所述批 處理任務的運行狀態(tài)、運行IP地址信息和運行時長信息。則所述第二判斷單 元2223,用于根據(jù)調(diào)度規(guī)則、獲取的運行狀態(tài)、運行IP地址信息和運行時長 信息確定是否調(diào)度所述批處理任務。
本發(fā)明實施例中,可以是當應用服務設(shè)備22獲取到的批處理任務的運行 狀態(tài)為運行失敗時,優(yōu)先調(diào)度記錄的運行IP地址不是本應用服務設(shè)備IP地址 的批處理任務。
需要說明的是,獲取單元2221獲取的信息包括但不限于上述實施方式, 其根據(jù)預設(shè)定的調(diào)度規(guī)則的需要,獲取的批處理任務的信息不同。
圖7是圖5所示的應用服務設(shè)備的另一批處理調(diào)度單元的結(jié)構(gòu)示意圖。 如圖7所示,批處理調(diào)度單元222,包括
獲取單元2221,用于觸發(fā)單元220觸發(fā)對所述多批處理任務的調(diào)度時, 獲取所述多批處理任務中的批處理任務的運行狀態(tài);
第二判斷單元2223,用于根據(jù)調(diào)度規(guī)則、獲取的所述運行狀態(tài)判斷是否 調(diào)度所述批處理任務;調(diào)度執(zhí)行單元2225,用于當所述第二判斷單元判斷為是時,調(diào)度所述批 處理任務,所述批處理任務的運行狀態(tài)為準備運行或運行失敗。
本實施例的各單元模塊的功能與圖6所示的單元模塊的功能類同。
本發(fā)明實施例的系統(tǒng)對如何根據(jù)預設(shè)定的調(diào)度規(guī)則調(diào)度多批處理任務中 的運行狀態(tài)為準備運行或運行失敗的批處理任務,詳見本發(fā)明實施例的方法 的描述,在此不再贅述。
本實施例中,數(shù)據(jù)庫中記錄有所有RunID的各種信息(包括運行狀態(tài)), 各應用服務設(shè)備上都配置有一個相同的批處理調(diào)度單元,任意一個批處理調(diào) 度單元都能夠調(diào)度所有RunID來運行。當一臺應用服務設(shè)備故障時,其他應 用服務設(shè)備仍然可以調(diào)度剩余未運行的RunID,只要有一臺應用服務設(shè)備沒 有故障就可以執(zhí)行完所有的RunID。
本發(fā)明實施例的一方面,可根據(jù)批處理任務的運行時間或占用系統(tǒng)資源 多少來配置批處理任務的優(yōu)先級,以此可將運行時間相同或相近的批處理任 務定義為同一優(yōu)先級,保證時間相同或相近的批處理任務同時執(zhí)行,使系統(tǒng) 整體的運行時間最短,提高系統(tǒng)的效率。
本發(fā)明實施例的另 一方面,在無需使用第三方軟件或集群技術(shù)的情況下, 根據(jù)應用服務設(shè)備的性能設(shè)置運行的批處理任務的上限,即可在多應用服務 設(shè)備上實現(xiàn)均衡負載,達到對系統(tǒng)資源的充分利用。
可選地,通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了 解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當然也可 以通過硬件?;谶@樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出 貢獻的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機軟件產(chǎn)品可以存儲在 計算機可讀存儲介質(zhì)中,如ROM/RAM、磁盤、光盤等,包括若干指令用以使 得一臺計算機設(shè)備(可以是個人計算機,服務器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各 個實施例或者實施例的某些部分所述的方法。
當然,以上所述為本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術(shù)領(lǐng)域 的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進 和潤飾,這些改進和潤飾也視為本發(fā)明的保護范圍。
權(quán)利要求
1. 一種多批處理任務的調(diào)度方法,其特征在于,所述方法包括觸發(fā)所述多批處理任務的調(diào)度;根據(jù)預設(shè)定的調(diào)度規(guī)則,調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或運行失敗的批處理任務。
2.根據(jù)權(quán)利要求1所述的調(diào)度方法,其特征在于,所述調(diào)度規(guī)則包括 根據(jù)所述多批處理任務中的批處理任務的運行時長信息確定要調(diào)度的批 處理任務。
3.根據(jù)權(quán)利要求1所述的調(diào)度方法,其特征在于,所述調(diào)度規(guī)則包括: 根據(jù)所述多 任務。
4.根據(jù)權(quán)利要求3所述的調(diào)度方法,其特征在于,所述調(diào)度規(guī)則還包括 根據(jù)所述多批處理任務中的批處理任務的優(yōu)先級信息確定要調(diào)度的批處 理任務。
5.根據(jù)權(quán)利要求2至4之一所述的調(diào)度方法,其特征在于,所述調(diào)度規(guī) 則還包括根據(jù)所述多批處理任務中的批處理任務的運行IP地址信息確定要 調(diào)度的批處理任務。
6.根據(jù)權(quán)利要求1所述的調(diào)度方法,其特征在于,所述根據(jù)預設(shè)定的調(diào)任務的步驟之前,所述方法進一步包括判斷應用服務設(shè)備中正在運行的批處理任務的數(shù)量是否達到預定值,所 述批處理任務屬于所述多批處理任務,判斷為沒有達到,則執(zhí)行所述根據(jù)預 設(shè)定的調(diào)度規(guī)則調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或運行失敗 的批處理任務的步驟。
7. —種多批處理任務的調(diào)度系統(tǒng),包括數(shù)據(jù)庫服務設(shè)備和至少一個應用 服務設(shè)備,其特征在于,所述應用服務設(shè)備包括觸發(fā)單元,用于觸發(fā)所述多批處理任務的調(diào)度;批處理調(diào)度單元,用于所述觸發(fā)單元觸發(fā)對所述多批處理任務的調(diào)度時, 根據(jù)預設(shè)定的調(diào)度規(guī)則調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或運 行失敗的批處理任務。
8. 根據(jù)權(quán)利要求7所述的調(diào)度系統(tǒng),其特征在于,所述批處理調(diào)度單元 包括第一判斷單元,用于所述觸發(fā)單元觸發(fā)對所述多批處理任務的調(diào)度時, 判斷所述應用服務設(shè)備中正在運行的批處理任務的數(shù)量是否達到預定值,所 述批處理任務屬于所述多批處理任務;獲取單元,用于所述第一判斷單元判斷為沒有達到時,獲取所述多批處 理任務中的批處理任務的運行狀態(tài);第二判斷單元,用于根據(jù)所述調(diào)度規(guī)則、獲取的所述運行狀態(tài)判斷是否調(diào)度所述批處理任務;調(diào)度執(zhí)行單元,用于當所述第二判斷單元判斷為是時,調(diào)度所述批處理 任務,所述批處理任務的運行狀態(tài)為準備運行或運行失敗。
9. 根據(jù)權(quán)利要求7所述的調(diào)度系統(tǒng),其特征在于,所述批處理調(diào)度單元 包括獲取單元,用于所述觸發(fā)單元觸發(fā)對所述多批處理任務的調(diào)度時,獲取 所述多批處理任務中的批處理任務的運行狀態(tài);第二判斷單元,用于根據(jù)所述調(diào)度規(guī)則、獲取的所述運行狀態(tài)判斷是否 調(diào)度所述批處理任務;調(diào)度執(zhí)行單元,用于當所述第二判斷單元判斷為是時,調(diào)度所述批處理 任務,所述批處理任務的運行狀態(tài)為準備運行或運^f于失敗。
10. 根據(jù)權(quán)利要求9所述的調(diào)度系統(tǒng),其特征在于所述獲取單元,還用于獲取所述多批處理任務中的批處理任務的運行時長信息;所述第二判斷單元,還用于根據(jù)獲取的所述運行時長信息判斷是否調(diào)度 所述批處理任務。
11. 根據(jù)權(quán)利要求9所述的調(diào)度系統(tǒng),其特征在于 所述獲取單元,還用于獲取所述批處理任務的優(yōu)先級信息; 所述第二判斷單元,還用于根據(jù)獲取的所述優(yōu)先級信息確定是否調(diào)度所述批處理任務。
12. 根據(jù)權(quán)利要求9至11之一所述的調(diào)度系統(tǒng),其特征在于 所述獲if又單元,還用于獲取所述批處理任務的運行IP地址信息; 所述第二判斷單元,還用于根據(jù)獲取的所述運行IP地址信息確定是否調(diào)度所述批處理任務。
全文摘要
本發(fā)明公開了一種多批處理任務的調(diào)度系統(tǒng),包括數(shù)據(jù)庫服務設(shè)備和至少一個應用服務設(shè)備,其中應用服務設(shè)備包括觸發(fā)單元,用于觸發(fā)所述多批處理任務的調(diào)度;批處理調(diào)度單元,用于所述觸發(fā)單元觸發(fā)對所述多批處理任務的調(diào)度時,根據(jù)預設(shè)定的調(diào)度規(guī)則調(diào)度所述多批處理任務中的運行狀態(tài)為準備運行或運行失敗的批處理任務。本發(fā)明還公開了一種多批處理任務的調(diào)度方法。采用本發(fā)明,各應用服務設(shè)備可根據(jù)調(diào)度規(guī)則來靈活調(diào)度多批處理任務中的各批處理任務,使得系統(tǒng)運行多批處理任務的整體時間運行降低,提高系統(tǒng)運行多批處理任務的效率。
文檔編號G06F9/46GK101446906SQ200810192909
公開日2009年6月3日 申請日期2008年12月31日 優(yōu)先權(quán)日2008年12月31日
發(fā)明者浩 劉, 靚 徐, 王成名, 濤 胡, 趙世輝, 楊 鄧, 鄭承滿, 郭桂釵 申請人:中國建設(shè)銀行股份有限公司