一種異步批處理調度方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實施例公開了異步批處理調度方法,包括:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;當判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值,若為是,則分析所述異步批處理業(yè)務的業(yè)務類型;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。采用本發(fā)明,提供統(tǒng)一的批處理業(yè)務開發(fā)框架,易于開發(fā)擴展、運維、監(jiān)控和異常處理,提高了批處理調度的靈活性;另外根據(jù)不同業(yè)務類型進行分發(fā)處理,不同的業(yè)務類型可以對應不同的任務處理池,有效提高了資源使用率。
【專利說明】一種異步批處理調度方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及數(shù)據(jù)處理【技術領域】,尤其涉及一種異步批處理調度方法及系統(tǒng)。
【背景技術】
[0002]隨著銀行業(yè)務的快速發(fā)展,業(yè)務種類、業(yè)務數(shù)量也隨之不斷增加,核心應用系統(tǒng)將面臨大量的批處理業(yè)務。通常,用戶可以通過終端或者電子渠道等實時觸發(fā)并完成各種金融業(yè)務,如銀行的存款、取款、轉賬、余額查詢、公積金歸集等,該種批處理交易處理時間短,發(fā)生的業(yè)務數(shù)據(jù)能立即進入主機數(shù)據(jù)庫,數(shù)據(jù)處理系統(tǒng)批量處理上述業(yè)務的數(shù)據(jù)為聯(lián)機批處理業(yè)務;另外一種異步批處理業(yè)務,其業(yè)務數(shù)據(jù)待加工和處理,交易數(shù)據(jù)量大、處理時間長,如自動還款、銀行結息、生成各種會計報表等。
[0003]目前現(xiàn)有的批處理調度方法,后臺系統(tǒng)需要根據(jù)業(yè)務處理量的大小進行判斷作為聯(lián)機交易處理還是異步批處理,且異步批處理與聯(lián)機交易處理完全脫節(jié),缺少對聯(lián)機批處理任務的管理,而且異步批處理都是根據(jù)用戶預先設定好的批處理邏輯,在某個固定的時間段進行統(tǒng)一執(zhí)行批處理調度,缺少調度的靈活性。
【發(fā)明內容】
[0004]本發(fā)明實施例所要解決的技術問題在于,提供一種異步批處理調度方法及系統(tǒng),提供統(tǒng)一的批處理業(yè)務開發(fā)框架,易于開發(fā)擴展、運維、監(jiān)控和異常處理,解決了現(xiàn)有技術中批處理缺少調度靈活性的問題,另外根據(jù)不同業(yè)務類型進行分發(fā)處理,不同的業(yè)務類型可以對應不同的任務處理池,有效提高了資源使用率。
[0005]為了解決上述技術問題,本發(fā)明實施例第一方面公開了一種異步批處理調度方法,包括
[0006]接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0007]判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值,若為是,則分析所述異步批處理業(yè)務的業(yè)務類型;
[0008]當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。
[0009]本發(fā)明實施例第二方面公開了一種異步批處理調度系統(tǒng),包括
[0010]接收模塊,接收批處理業(yè)務請求;
[0011]計算模塊,用于統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0012]判斷模塊,用于判斷所述計算模塊計算的所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值;
[0013]異步分析模塊,用于當所述判斷模塊輸出為是時,分析所述異步批處理業(yè)務的業(yè)務類型;
[0014]實時調度模塊,用于當所述異步分析模塊根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;
[0015]異步調度模塊,用于當異步分析模塊根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。
[0016]實施本發(fā)明實施例,具有如下有益效果:
[0017]通過提供統(tǒng)一的批量業(yè)務開發(fā)框架,易于開發(fā)擴展、運維、監(jiān)控和異常處理;根據(jù)不同任務種類進行分發(fā)處理,不同的任務種類可以對應不同的任務處理池,有效提高了資源使用率;批處理任務時間段可控,對于一些對實時性要求不高的批量處理任務,通過定義預約任務,將任務放在系統(tǒng)空閑時段運行,以保障系統(tǒng)在實時交易高峰時段有最大資源的使用權,對于一些實時要求較高的批量業(yè)務,可以不受此允許時間段的控制,進行實時調度。
【專利附圖】
【附圖說明】
[0018]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0019]圖1是本發(fā)明實施例提供的異步批處理調度方法的流程示意圖;
[0020]圖2是本發(fā)明提供的異步批處理調度方法的另一實施例的流程示意圖;
[0021]圖3-1是本發(fā)明實施例提供的異步批處理調度方法之實時調度任務的流程示意圖;
[0022]圖3-2是本發(fā)明實施例提供的異步批處理調度方法之異步調度任務的流程示意圖;
[0023]圖4是本發(fā)明實施例提供的異步批處理調度方法之實時調度方法的流程示意圖;
[0024]圖5是本發(fā)明實施例提供的異步批處理調度方法之異步調度方法的流程示意圖;
[0025]圖6是本發(fā)明實施例提供的異步批處理調度方法之預約調度方法的流程示意圖;
[0026]圖7是本發(fā)明實施例提供的異步批處理調度系統(tǒng)示意圖;
[0027]圖8是本發(fā)明實施例提供的批處理調度系統(tǒng)示意圖;
[0028]圖9是本發(fā)明實施例提供的實時調度模塊示意圖;
[0029]圖10是本發(fā)明實施例提供的異步調度模塊示意圖;
[0030]圖11是本發(fā)明實施例提供的預約任務模塊示意圖。
【具體實施方式】
[0031]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0032]需要說明的是,在本發(fā)明實施例中使用的術語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明實施例和所附權利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應當理解,本文中使用的術語“和/或”是指并包含一個或多個相關聯(lián)的列出項目的任何或所有可能組合。
[0033]參見圖1,是本發(fā)明實施例提供的異步批處理調度方法的流程示意圖,該方法包括:
[0034]步驟3100:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0035]具體地,接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;
[0036]批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0037]批處理的業(yè)務特點為:(1) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件。
[0038]步驟3102:判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為是時,則分析所述異步批處理業(yè)務的業(yè)務類型;
[0039]具體地,數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷。
[0040]當所述交易處理數(shù)據(jù)量大于所述數(shù)據(jù)門限值時,登記所述批處理業(yè)務為異步批處理業(yè)務,將所述批處理業(yè)務的交易上下文保存到數(shù)據(jù)庫,等到異步任務調度主控進行輪訓調度執(zhí)行;異步批處理的業(yè)務類型包含但不限于賬戶結息、登記簿、日結單、公積金匯繳、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務等。
[0041]步驟3104:當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理;
[0042]具體地,可以預先設置登記簿、生產(chǎn)各種報表等業(yè)務為實時調度任務,可以預先設置賬戶結息、日結單、公積金匯繳、批量文件業(yè)務、大報文傳輸業(yè)務等為異步調度任務;分析步驟3102中所述異步批處理業(yè)務的業(yè)務類型,當業(yè)務類型為登記簿或者生產(chǎn)各種報表或者其他預先設置的實時調度任務類型,則登記所述異步批處理業(yè)務為實時調度任務;實時調度任務主要是針對業(yè)務處理量比較少的業(yè)務,可以將所述異步批處理交易模擬成聯(lián)機交易,支持聯(lián)機等待異步處理的返回結果;分析步驟3102中所述異步批處理業(yè)務的業(yè)務類型,當業(yè)務類型為賬戶結息或者日結單或者公積金匯繳或者其他預先設置的異步調度任務類型,則登記所述異步批處理業(yè)務為異步調度任務;異步調度任務主要針對業(yè)務處理量較大的業(yè)務,將所述異步批處理業(yè)務存儲于內存中,等待任務調度主控程序進行輪訓查詢并執(zhí)行。
[0043]另外,異步批處理業(yè)務的處理數(shù)據(jù)量可能會比較大,處理耗時會較長,在處理時,采用異步業(yè)務處理模式,即發(fā)起方準備好數(shù)據(jù)并觸發(fā)業(yè)務處理之后即返回,并不一直等待業(yè)務處理結束。
[0044]參見圖2,是本發(fā)明提供的異步批處理調度方法的另一實施例的流程示意圖,該方法包括:
[0045]步驟3200:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0046]具體地,接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;
[0047]批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0048]批處理的業(yè)務特點為:(1) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件。
[0049]步驟3202:判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值;
[0050]具體地,數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或者所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷。
[0051]步驟3204:分析所述異步批處理業(yè)務的業(yè)務類型;
[0052]具體地,當步驟3202判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為是時,登記所述批處理業(yè)務為異步批處理業(yè)務,將所述批處理業(yè)務的交易上下文保存到數(shù)據(jù)庫,等到異步任務調度主控進行輪訓調度執(zhí)行;異步批處理的業(yè)務類型包含但不限于賬戶結息、登記簿、日結單、公積金匯繳、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務等。
[0053]步驟3206:當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理;
[0054]具體地,可以預先設置登記簿、生產(chǎn)各種報表等業(yè)務為實時調度任務,可以預先設置賬戶結息、日結單、公積金匯繳、批量文件業(yè)務、大報文傳輸業(yè)務等為異步調度任務;分析步驟3204中所述異步批處理業(yè)務的業(yè)務類型,當業(yè)務類型為登記簿或者生產(chǎn)各種報表或者其他預先設置的實時調度任務類型,則登記所述異步批處理業(yè)務為實時調度任務;實時調度任務主要是針對業(yè)務處理量比較少的業(yè)務,可以將所述異步批處理交易模擬成聯(lián)機交易,支持聯(lián)機等待異步處理的返回結果;分析步驟3204中所述異步批處理業(yè)務的業(yè)務類型,當業(yè)務類型為賬戶結息或者日結單或者公積金匯繳或者其他預先設置的異步調度任務類型,則登記所述異步批處理業(yè)務為異步調度任務;異步調度任務主要針對業(yè)務處理量較大的業(yè)務,將所述異步批處理業(yè)務存儲于內存中,等待任務調度主控程序進行輪訓查詢并執(zhí)行。
[0055]另外,異步批處理業(yè)務的處理數(shù)據(jù)量可能會比較大,處理耗時會較長,在處理時,采用異步業(yè)務處理模式,即發(fā)起方準備好數(shù)據(jù)并觸發(fā)業(yè)務處理之后即返回,并不一直等待業(yè)務處理結束。
[0056]步驟3208:對所述批處理業(yè)務進行聯(lián)機批處理;
[0057]具體地,當步驟3202判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為否時,登記所述批處理業(yè)務為聯(lián)機批處理業(yè)務,采用聯(lián)機批處理模式對所述聯(lián)機批處理業(yè)務進行數(shù)據(jù)處理,即通過聯(lián)機交易的服務注冊信息進行調度執(zhí)行對應的聯(lián)機批處理,聯(lián)機批處理業(yè)務處理時間較短,支持同步返回。
[0058]參見圖3-1,是本發(fā)明實施例提供的異步批處理調度方法之實時調度任務的流程示意圖,可理解的,在圖2所述的步驟S206中,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理之后,該方法包括:
[0059]步驟S300:對所述異步批處理業(yè)務進行實時調度處理時,創(chuàng)建相應的實時調度任務;
[0060]具體地,當圖2中步驟S206根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理,在對所述異步批處理業(yè)務實時調度處理之前,創(chuàng)建所述異步批處理業(yè)務相應的實時調度任務。
[0061]步驟S302:判斷實時調度任務池是否滿載;
[0062]具體地,在步驟S300創(chuàng)建所述異步批處理業(yè)務相應的實時調度任務,然后將所述實時調度任務分配到實時調度任務池之前,判斷所述實時調度任務池是否滿載。
[0063]步驟S304:拒絕調度執(zhí)行所述實時調度任務;
[0064]具體地,當步驟S302判斷實時調度任務池是否滿載的結果為是時,則直接拒絕調度執(zhí)行本條實時調度任務,并返回系統(tǒng)繁忙消息。
[0065]步驟S306:將所述實時調度任務分配到相應的實時調度任務池;
[0066]具體地,當步驟S302判斷實時調度任務池是否滿載的結果為否時,則將本條實時調度任務分配到相應的實時調度任務池,等待調度執(zhí)行。
[0067]參見圖3-2,是本發(fā)明實施例提供的異步批處理調度方法之異步調度任務的流程示意圖,可理解的,在圖2所述的步驟S206中,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理之后,該方法包括:
[0068]步驟308,對所述異步批處理業(yè)務進行異步調度處理時,創(chuàng)建相應的異步調度任務;
[0069]具體地,當步驟S206根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理,在對所述異步批處理業(yè)務異步調度處理之前,創(chuàng)建所述異步批處理業(yè)務相應的異步調度任務。
[0070]創(chuàng)建所述異步批處理業(yè)務首先需要對異步調度任務進行定義,所述異步調度任務定義是管理預約任務,可以將預約任務保存到異步調度任務定義表中;異步調度任務生成調度主控會根據(jù)任務定義表中的數(shù)據(jù)來生成執(zhí)行任務。另外,對已經(jīng)定義生產(chǎn)的異步調度任務,可以通過異步調度任務注冊類進行管理,即通過數(shù)據(jù)庫表注冊異步任務完成后,進行調度并立即執(zhí)行異步任務。
[0071]異步調度任務注冊過程具體如下:根據(jù)每個異步調度任務類型調用相應的doAddTask方法(其中doAddTask方法用于添加異步任務),可以往異步調度任務數(shù)據(jù)表和參數(shù)表寫入任務相關信息;然后對于需要即刻執(zhí)行的任務可以調用doExecTask方法(用于添加并執(zhí)行異步任務),該方法會先將狀態(tài)為執(zhí)行中的任務息插入任務息表和參數(shù)表,并可以通過對應的任務執(zhí)行器(TaskHandler)直接調度執(zhí)行該任務。
[0072]可理解的是,上述異步調度任務注冊過程只作為一種可能的實施方式,本發(fā)明實施例中的異步調度任務注冊過程的步驟除了上述實施方式外還可以為其它實現(xiàn)方式,此處不做限定。
[0073]步驟S310:判斷異步調度任務池是否滿載;
[0074]具體地,在步驟S308創(chuàng)建所述異步批處理業(yè)務相應的異步調度任務,然后將所述異步調度任務分配到異步調度任務池之前,判斷異步調度任務池是否滿載。
[0075]步驟S312:拒絕處理或者由發(fā)起線程處理或者忽略處理;
[0076]異步調度任務池管理一個線程池和等待隊列,當步驟S310判斷異步調度任務池是否滿載的結果為是時,拒絕處理所述異步調度任務,將所述異步調度任務保存在等待線性隊列中,等待異步任務池不再滿載時,將本條異步批處理任務存儲于異步調度任務池中,等待調度執(zhí)行;或者通過發(fā)起線程來處理所述異步調度任務,所述異步批處理任務不被存儲于異步調度任務池等待下次調度執(zhí)行,而是由發(fā)起調度執(zhí)行的發(fā)起線程隊列進行直接處理;或者忽略處理所述異步調度任務,忽略所述異步批處理任務,拋棄處理。
[0077]步驟S314:將所述異步調度任務分配到相應的異步調度任務池;
[0078]具體地,當步驟S310判斷異步調度任務池是否滿載的結果為否時,則將本條異步調度任務分配到相應的異步調度任務池,等待調度執(zhí)行。
[0079]參見圖4,是本發(fā)明實施例提供的異步批處理調度方法之實時調度方法的流程示意圖,該方法包括:
[0080]步驟S400:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0081]具體地,接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;
[0082]批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0083]批處理的業(yè)務特點為:(I) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件。
[0084]步驟S402:當判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為是時,則分析所述異步批處理業(yè)務的業(yè)務類型;
[0085]具體地,數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或者所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷。
[0086]當所述交易處理數(shù)據(jù)量大于所述數(shù)據(jù)門限值時,登記所述批處理業(yè)務為異步批處理業(yè)務,將所述批處理業(yè)務的交易上下文保存到數(shù)據(jù)庫,等到異步任務調度主控進行輪訓調度執(zhí)行;異步批處理的業(yè)務類型包含但不限于賬戶結息、登記簿、日結單、公積金匯繳、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務等。
[0087]步驟S404:當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;
[0088]具體地,分析步驟S402中所述異步批處理業(yè)務的業(yè)務類型,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理,所述實時調度任務包含但不限于登記簿、生產(chǎn)各種報表等;實時調度任務主要是針對業(yè)務處理量比較少的業(yè)務,支持聯(lián)機等待異步處理的返回結果,可以將所述異步批處理交易模擬成聯(lián)機交易。
[0089]步驟S406:創(chuàng)建相應的實時調度任務;
[0090]具體地,當步驟S404根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理,在對所述異步批處理業(yè)務實時調度處理之前,創(chuàng)建所述異步批處理業(yè)務相應的實時調度任務。
[0091]創(chuàng)建所述異步批處理業(yè)務首先可以對實時調度任務進行定義,所述實時調度任務定義是管理預約任務,可以將預約任務保存到實時調度任務定義表中;實時調度任務生成調度主控會根據(jù)實時調度任務定義表中的數(shù)據(jù)來生成執(zhí)行任務。另外,對已經(jīng)定義生產(chǎn)的實時調度異步任務,通過實時調度任務注冊類進行管理,即通過數(shù)據(jù)庫表注冊實時調度任務完成后,進行調度并立即執(zhí)行實時調度任務。
[0092]實時調度任務注冊過程具體如下:可以根據(jù)每個實時調度任務類型調用相應的doAddTask方法(其中doAddTask方法用于添加異步任務),可以往實時調度任務數(shù)據(jù)表和參數(shù)表寫入任務相關信息;然后對于需要即刻執(zhí)行的任務可以調用doExecTask方法(用于添加并執(zhí)行異步任務),該方法會先將狀態(tài)為執(zhí)行中的任務信息插入到任務信息表和參數(shù)表中,并可以通過對應的任務執(zhí)行器(TaskHandler)直接調度執(zhí)行該任務。
[0093]可理解的是,上述實時調度任務注冊過程只作為一種可能的實施方式,本發(fā)明實施例中的實時調度任務注冊過程的步驟除了上述實施方式外還可以為其它實現(xiàn)方式,此處不做限定。
[0094]步驟S408:判斷實時調度任務池是否滿載;
[0095]具體地,在步驟S406創(chuàng)建所述異步批處理業(yè)務相應的實時調度任務,然后將所述實時調度任務分配到實時調度任務池之前,判斷所述實時調度任務池是否滿載。
[0096]步驟S410:拒絕調度執(zhí)行該筆實時調度任務;
[0097]具體地,當步驟S408判斷實時調度任務池是否滿載的結果為是時,則直接拒絕調度執(zhí)行本條實時調度任務,并返回系統(tǒng)繁忙消息。
[0098]步驟S412:將所述實時調度任務分配到相應的實時調度任務池;
[0099]具體地,當步驟S408判斷實時調度任務池是否滿載的結果為否時,則將本條實時調度任務分配到相應的實時調度任務池,等待調度執(zhí)行。
[0100]步驟S414:對所述實時調度任務進行優(yōu)先級別設定;
[0101]具體地,根據(jù)所述實時調度任務池中的實時調度任務的業(yè)務類型,進行優(yōu)先級別設定,例如,設定登記簿的優(yōu)先級別設定為一級,將生產(chǎn)各種報表的優(yōu)先級別設定為二級,一級優(yōu)先級高于二級優(yōu)先級。
[0102]步驟S416:根據(jù)優(yōu)先級,調度執(zhí)行優(yōu)先級別高的實時調度任務;
[0103]具體地,從步驟S412分配到實時調度任務池中的實時調度任務進行調度執(zhí)行,調度執(zhí)行時,按照實時調度任務的優(yōu)先級別的高低,優(yōu)先調度優(yōu)先級別高的實時調度任務,例如,當實時調度任務池中包含登記簿和生成各種報表時,優(yōu)先調度登記簿業(yè)務,等調度登記簿業(yè)務后,再調度執(zhí)行生成各種報表業(yè)務。
[0104]實時調度任務信息可以保存在任務信息表和參數(shù)表中,可以通過任務執(zhí)行器(TaskHandler)直接調度執(zhí)行所述實時調度任務。另外如果需要取消正在執(zhí)行的任務可以調用doCancelTask方法(用于取消任務時,需輸入執(zhí)行任務的Taskid),但是正在執(zhí)行的任務不能進行取消。
[0105]步驟S418:等待所述實時調度任務的返回結果,發(fā)送任務處理結果至客戶端;
[0106]具體地,doExecTaskWithResult方法可以實時等待實時調度任務的處理結果,可以用于添加并執(zhí)行實時調度任務并等待返回結果,等待超時時間默認為30秒,另外也可以根據(jù)參數(shù)轉入執(zhí)行另一條實時調度任務。如果調用doExecTaskWithResult方法成功,那么返回實時調度任務的處理結果,如果調用超時則拋出運行時異常消息。
[0107]所述分配到實時調度任務池中的所述實時調度任務的業(yè)務處理量一般比較少,處理時間也相對較短,處理實時調度任務池中的所述實時調度任務時,可以在聯(lián)機交易中等待任務執(zhí)行的返回結果,就算聯(lián)機交易超時了,也不會影響原任務的執(zhí)行。當所述實時調度任務處理結束后,將所述批處理業(yè)務的處理結果信息可以通過消息中心發(fā)送至客戶端;所述結果信息包含但不限于接收消息的節(jié)點號,以及相關的機構用戶信息等;所述客戶端包含但不限于指定機構或者指定用戶等。
[0108]參見圖5,是本發(fā)明實施例提供的異步批處理調度方法之異步調度方法的流程示意圖,該方法包括:
[0109]步驟S500:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0110]具體地,接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;
[0111]批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0112]批處理的業(yè)務特點為:(I) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件。
[0113]步驟S502:當判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為是時,則分析所述異步批處理業(yè)務的業(yè)務類型;
[0114]具體地,數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或者所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷。
[0115]當所述交易處理數(shù)據(jù)量大于所述數(shù)據(jù)門限值時,登記所述批處理業(yè)務為異步批處理業(yè)務,將所述批處理業(yè)務的交易上下文保存到數(shù)據(jù)庫,等到異步任務調度主控進行輪訓調度執(zhí)行;異步批處理的業(yè)務類型包含但不限于賬戶結息、登記簿、日結單、公積金匯繳、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務等。
[0116]步驟S504:當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理;
[0117]具體地,分析步驟S502中所述異步批處理業(yè)務的業(yè)務類型,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理,所述異步調度任務包含但不限于賬戶結息、日結單、公積金匯繳、批量文件業(yè)務、大報文傳輸業(yè)務等;異步調度任務主要針對業(yè)務處理量較大的業(yè)務,可以將所述異步批處理業(yè)務存儲于內存中,等待任務調度主控程序進行輪訓查詢并執(zhí)行。
[0118]步驟3506:創(chuàng)建相應的異步調度任務;
[0119]具體地,當步驟3504根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理,在對所述異步批處理業(yè)務異步調度處理之前,創(chuàng)建所述異步批處理業(yè)務相應的異步調度任務。
[0120]創(chuàng)建所述異步批處理業(yè)務首先需要對異步調度任務進行定義,所述異步調度任務定義是管理預約任務,將預約任務保存到異步調度任務定義表中;異步調度任務生成調度主控會根據(jù)任務定義表中的數(shù)據(jù)來生成執(zhí)行任務。另外,對已經(jīng)定義生產(chǎn)的異步調度任務,通過異步調度任務注冊類進行管理,即通過數(shù)據(jù)庫表注冊異步任務完成后,進行調度并立即執(zhí)行異步任務。
[0121]異步調度任務注冊過程具體如下:可以根據(jù)每個異步調度任務類型調用相應的己0八方法(其中(10八方法用于添加異步任務),可以往異步調度任務數(shù)據(jù)表和參數(shù)表寫入任務相關信息;然后對于需要即刻執(zhí)行的任務可以調用方法(用于添加并執(zhí)行異步任務),該方法會先將狀態(tài)為執(zhí)行中的任務彳目息插入任務彳目息表和參數(shù)表,并可以通過對應的任務執(zhí)行器直接調度執(zhí)行該任務。
[0122]可理解的是,上述異步調度任務注冊過程只作為一種可能的實施方式,本發(fā)明實施例中的異步調度任務注冊過程的步驟除了上述實施方式外還可以為其它實現(xiàn)方式,此處不做限定。
[0123]步驟3508:判斷異步調度任務池是否滿載;
[0124]具體地,在步驟3506創(chuàng)建所述異步批處理業(yè)務相應的異步調度任務,然后將所述異步調度任務分配到異步調度任務池之前,判斷所述異步調度任務池是否滿載。
[0125]步驟3510:拒絕處理所述異步調度任務,或者通過發(fā)起線程來處理所述異步調度任務,或者忽略處理所述異步調度任務;
[0126]具體地,當步驟3508判斷異步調度任務池是否滿載的結果為是時,則采取以下處理方式:直接拒絕調度執(zhí)行本條異步調度任務,或者通過發(fā)起線程來處理所述異步調度任務,或者忽略處理所述異步調度任務;異步調度任務池管理一個線程池和等待隊列,當異步調度任務池滿載時,直接拒絕處理所述異步調度任務,將所述異步調度任務保存在等待線性隊列中,等待異步任務池不再滿載時,將本條異步批處理任務存儲于異步調度任務池中,等待下次調度執(zhí)行;或者通過發(fā)起線程來處理所述異步調度任務,所述異步批處理任務不被存儲于異步調度任務池等待后續(xù)調度執(zhí)行,而是由發(fā)起調度執(zhí)行的發(fā)起線程隊列進行直接處理;或者忽略處理所述異步調度任務,忽略所述異步批處理任務,拋棄處理。
[0127]步驟3512:將所述異步調度任務分配到相應的異步調度任務池;
[0128]具體地,當步驟3508判斷異步調度任務池是否滿載的結果為否時,則將本條異步調度任務分配到相應的異步調度任務池,等待調度執(zhí)行。
[0129]步驟3514:對所述異步調度任務進行優(yōu)先級別設定;
[0130]具體地,根據(jù)所述異步調度任務池中的異步調度任務的業(yè)務類型,進行優(yōu)先級別設定,例如,異步調度任務包含但不限于賬戶結息、日結單、公積金匯繳、大報文傳輸業(yè)務等,設定賬戶結息的優(yōu)先級別為一級,設定日結單的優(yōu)先級別為二級,設定公積金匯繳的優(yōu)先級別為三級,設定大報文傳輸業(yè)務的優(yōu)先級別為四級,一級優(yōu)先級最高,四級優(yōu)先級最低。
[0131]可理解的是,上述優(yōu)先級別設定過程只作為一種可能的實施方式,本發(fā)明實施例中的優(yōu)先級別設定過程除了上述實施方式外還可以為其他實現(xiàn)方式,此處不做限定。
[0132]步驟S516:對所述異步調度任務進行數(shù)據(jù)切片處理,得到異步調度任務的切片數(shù)據(jù);
[0133]具體地,調度執(zhí)行所述異步調度任務時,提供大批量數(shù)據(jù)切片處理機制,將所述異步批處理業(yè)務數(shù)據(jù)進行數(shù)據(jù)切片處理,得到切片數(shù)據(jù),提供對所述切片數(shù)據(jù)進行多線程批任務的并發(fā)處理。
[0134]數(shù)據(jù)切片與任務調度邏輯無關,主要為批任務作業(yè)中大批量切片處理提供規(guī)范和支持。數(shù)據(jù)切片機制可以包括:數(shù)據(jù)切片邏輯接口(IChunkHandlerCD)、數(shù)據(jù)切片處理接口(IChunk)和一個批量數(shù)據(jù)處理邏輯BaseChunkJob。其中,批量數(shù)據(jù)處理邏輯BaseChunkJob根據(jù)用戶傳入的IChunkHandler〈T>對象,循環(huán)獲取并處理批量數(shù)據(jù)的一個切片;記錄處理接口(IChunkHandler〈T>)負責從數(shù)據(jù)源獲取當前待處理的數(shù)據(jù)切片;數(shù)據(jù)切片處理接口(IChunk)負責提供某數(shù)據(jù)切片的處理邏輯。另外,批量數(shù)據(jù)處理邏輯BaseChunkJob是批量數(shù)據(jù)切片處理的入口類,BaseChunkJob依賴于IChunkHandler〈T>對象實現(xiàn)對數(shù)據(jù)切片的獲取;記錄處理接口 IChunkHandler〈T>需要開發(fā)人員實現(xiàn)3個方法:hasNextChunk O , nextChunk O 和 close O 方法,具體為:hasNextChunk O 返回 boolean 值,判斷數(shù)據(jù)源是否處理完畢;neXtChunk()返回下一個待處理數(shù)據(jù)切片;cl0Se()用于批處理完畢后關閉數(shù)據(jù)源、文件等資源。IChunk包括方法:handleData(), handleDataO方法負責實現(xiàn)對一個切片的數(shù)據(jù)進行處理的邏輯。
[0135]可理解的是,上述數(shù)據(jù)切片設定步驟只作為一種可能的實施方式,本發(fā)明實施例中的數(shù)據(jù)切片過程除了上述實施方式外還可以為其他實現(xiàn)方式,此處不做限定。
[0136]步驟S518:按照優(yōu)先級,調度執(zhí)行所述異步調度任務,并執(zhí)行所述切片數(shù)據(jù);
[0137]具體地,異步調度任務信息可以保存在任務信息表和參數(shù)表中,可以通過任務執(zhí)行器(TaskHandler)直接調度執(zhí)行所述異步調度任務;另外可以通過任務調度管理器(TaskDispatch)實現(xiàn)任務調度管理功能,可以對定時查詢數(shù)據(jù)庫中的異步調度任務信息,獲取服務的類型、服務定位方式,進而進行調度執(zhí)行。
[0138]任務調度管理器(TaskDispatch)首先可以根據(jù)預先設定好的優(yōu)先級別,輪詢異步調度任務數(shù)據(jù)庫表,根據(jù)異步調度任務信息表中聲明的異步調度任務信息和參數(shù)表中提取相應參數(shù),找到對應的本地服務,并根據(jù)服務注冊信息中的參數(shù)類型要求進行轉換映射,在配置好的異步調度任務池中進行運行,對優(yōu)先級別高的異步任務進行優(yōu)先調度執(zhí)行。例如,異步調度任務包含但不限于賬戶結息、日結單、公積金匯繳、大報文傳輸業(yè)務等,設定賬戶結息的優(yōu)先級別為一級,設定日結單的優(yōu)先級別為二級,設定公積金匯繳的優(yōu)先級別為三級,設定大報文傳輸業(yè)務的優(yōu)先級別為四級。調度時優(yōu)先調度執(zhí)行賬戶結息業(yè)務,而后調度執(zhí)行日結單業(yè)務,再然后調度執(zhí)行公積金匯繳業(yè)務,最后待其他類型的業(yè)務都調度執(zhí)行完畢后,再調度執(zhí)行大報文傳輸業(yè)務。
[0139]任務執(zhí)行器(TaskHandler)對需要異步執(zhí)行的任務進行統(tǒng)一管理并執(zhí)行,支持串行和并行執(zhí)行兩種模式。采用線程池管理執(zhí)行異步任務,限定并發(fā)線程數(shù)量,任務執(zhí)行隊列達到一定數(shù)量則采取相應的執(zhí)行策略(拒絕執(zhí)行處理或在原線程中進行執(zhí)行處理);另外如果需要取消正在執(zhí)行的任務則調用doCancelTask方法(用于取消任務時,需輸入執(zhí)行任務的1(1),但是正在執(zhí)行的任務不能進行取消。任務執(zhí)行器執(zhí)行任務時,將步驟3516獲取的所述異步調度任務的切片數(shù)據(jù),進行串行和/或并發(fā)執(zhí)行處理。
[0140]可理解的是,上述任務調度管理器和執(zhí)行任務器的設定過程只作為一種可能的實施方式,本發(fā)明實施例中的任務調度管理器和執(zhí)行任務器的設定過程除了上述實施方式外還可以為其他實現(xiàn)方式,此處不做限定。
[0141]步驟3520:等待所述異步調度任務的返回結果,發(fā)送任務處理結果至客戶端;
[0142]具體地,將步驟3518中所述批處理業(yè)務的處理結果信息可以通過消息中心發(fā)送至客戶端;所述結果信息包含但不限于接收消息的節(jié)點號,以及相關的機構用戶信息等;所述客戶端包含但不限于指定機構或者指定用戶等。
[0143]參見圖6,是本發(fā)明實施例提供的異步批處理調度方法之預約調度方法的流程示意圖,該方法包括:
[0144]步驟3600:接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量;
[0145]具體地,接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;
[0146]批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0147]批處理的業(yè)務特點為:(1) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件。
[0148]步驟3602:當判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值的結果為是時,則分析所述異步批處理業(yè)務的業(yè)務類型;
[0149]具體地,數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或者所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷。
[0150]當所述交易處理數(shù)據(jù)量大于所述數(shù)據(jù)門限值時,登記所述批處理業(yè)務為異步批處理業(yè)務,將所述批處理業(yè)務的交易上下文保存到數(shù)據(jù)庫,等到異步任務調度主控進行輪訓調度執(zhí)行;異步批處理的業(yè)務類型包含但不限于賬戶結息、登記簿、日結單、公積金匯繳、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務等。
[0151]步驟3604:當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為預約任務時,對所述預約任務根據(jù)調度時間進行調度分析;
[0152]具體地,分析步驟3602中所述異步批處理業(yè)務的業(yè)務類型,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為預約任務時,對所述預約任務根據(jù)調度時間進行調度分析;所述預約任務包含但不限于公積金匯繳業(yè)務、大報文傳輸業(yè)務、日結單等;根據(jù)批處理時間段的調度處理,可以將所述預約任務分為周期性任務和定時執(zhí)行任務。
[0153]步驟3606:當根據(jù)調度時間將所述預約任務分為周期性任務,對所述周期性任務進行調度時間間隔設置;
[0154]具體地,當步驟3604中根據(jù)調度時間將所述預約任務分為周期性任務時,對所述周期性任務進行調度時間間隔設置;所述周期性任務包含但不限于公積金匯繳業(yè)務等;所述時間間隔可以設定為5min或者Ih或者其他的任意時長的時間間隔。
[0155]步驟S608:對所述異步批處理業(yè)務相隔所述調度時間間隔進行周期性輪訓調度執(zhí)行;
[0156]具體地,根據(jù)步驟S606中所設置的時間間隔,在間隔所述調度時間間隔對所述預約任務進行周期性輪訓調度執(zhí)行,例如,每隔5min進行輪訓調度執(zhí)行公積金匯繳業(yè)務,或者每隔Ih進行輪訓調度執(zhí)行公積金匯繳業(yè)務,或者設定的其他時長的時間間隔進行輪訓調度執(zhí)行預約任務。
[0157]步驟S610:當根據(jù)調度時間將所述預約任務分為定時執(zhí)行任務,對所述定時執(zhí)行任務進行調度允許時間段設置;
[0158]具體地,當步驟S604中根據(jù)調度時間將所述預約任務分為定時執(zhí)行任務時,對所述定時執(zhí)行任務進行允許時間段設置;所述定時執(zhí)行任務包含但不限于大報文傳輸業(yè)務、日結單等;所述允許時間段可以設定為(14:00-15:00)或者(20:00-22:00)或者其他的任意允許時間段。
[0159]步驟S612:對所述異步批處理在所述允許時間段內進行定時業(yè)務執(zhí)行處理;
[0160]具體地,根據(jù)步驟S610中所設置的調度允許時間段,在所述允許時間段內對所述預約任務進行定時調度執(zhí)行,例如,在(14:00-16:00)時間段對報文傳輸業(yè)務進行實時調度處理,或者在(20:00-22:00)時間段內對日結單業(yè)務進行實時調度處理等。
[0161]步驟S614:發(fā)送任務處理結果至客戶端;
[0162]具體地,將步驟S608或者步驟S612中所述批處理業(yè)務的處理結果信息可以通過消息中心發(fā)送至客戶端;所述結果信息包含但不限于接收消息的節(jié)點號,以及相關的機構用戶信息等;所述客戶端包含但不限于指定機構或者指定用戶等。
[0163]參見圖7,是本發(fā)明實施例提供的異步批處理調度系統(tǒng)示意圖,其中,如圖7所示,該異步批處理調度系統(tǒng)70包括:接收模塊700、計算模塊702、判斷模塊704、異步分析模塊706、實時調度模塊708、異步調度模塊710,其中
[0164]接收模塊700用于接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0165]批處理的業(yè)務特點為:(I) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件;
[0166]計算模塊702用于統(tǒng)計計算接收模塊700接收的所述批處理業(yè)務的交易處理數(shù)據(jù)量,所述批處理業(yè)務的交易處理數(shù)據(jù)量包含所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的類型等;
[0167]判斷模塊704用于判斷所述計算模塊702計算的所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值;所述數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷;
[0168]異步分析模塊706用于當所述判斷模塊704輸出為是時,分析所述異步批處理業(yè)務的業(yè)務類型;所述批處理業(yè)務的類型包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0169]實時調度模塊708用于當所述異步分析模塊706根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;
[0170]異步調度模塊710用于當異步分析模塊706根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。
[0171]參見圖8,是本發(fā)明實施例提供的批處理調度系統(tǒng)示意圖,其中,如圖8所示,批處理調度系統(tǒng)80包括:接收模塊800、計算模塊802、判斷模塊804、異步分析模塊806、聯(lián)機處理模塊808、實時調度模塊810、異步調度模塊812、預約任務模塊814、優(yōu)先管理模塊816、消息推送模塊818,其中
[0172]接收模塊800用于接收批處理業(yè)務的請求,可以是前端設備傳送的批處理業(yè)務,也可以是接收其他系統(tǒng)傳送的批處理業(yè)務,也可以是通過終端或各種電子渠道實時觸發(fā)的聯(lián)機事務,來完成各種金融事務的處理;批處理業(yè)務包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0173]批處理的業(yè)務特點為:(1) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件;
[0174]計算模塊802用于統(tǒng)計計算接收模塊800接收的所述批處理業(yè)務的交易處理數(shù)據(jù)量,所述批處理業(yè)務的交易處理數(shù)據(jù)量包含所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的類型等;
[0175]判斷模塊804用于判斷所述計算模塊802計算的所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值;所述數(shù)據(jù)門限值可以根據(jù)以下條件之一或者相互自由組合進行設置:處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的類型等,將所述交易處理數(shù)據(jù)量與所述數(shù)據(jù)門限值進行比較判斷;
[0176]異步分析模塊806用于當所述判斷模塊804輸出為是時,分析所述異步批處理業(yè)務的業(yè)務類型;所述批處理業(yè)務的類型包含但不限于各種代收付、公積金歸集、匯繳、賬戶結息、登記簿處理、日結單、生產(chǎn)各種報表、批量文件業(yè)務、大報文傳輸業(yè)務、保險公司的保單受理、保費續(xù)繳、理賠等;
[0177]聯(lián)機處理模塊808用于當所述判斷模塊804輸出為否時,對所述異步批處理業(yè)務進行聯(lián)機交易處理,聯(lián)機處理模塊808處理的所述異步批處理業(yè)務即為聯(lián)機批處理業(yè)務;聯(lián)機批處理業(yè)務的交易數(shù)據(jù)量一般比較小,處理時間也相對較短;聯(lián)機批處理業(yè)務對日間實時性要求較高,支持等待聯(lián)機交易返回結果。聯(lián)機交易模塊808處理的聯(lián)機業(yè)務包含但不限于各種代收付、保險公司的保單受理、保費續(xù)繳、理賠等;
[0178]聯(lián)機批處理業(yè)務的業(yè)務特點為:(1) 一次業(yè)務請求處理的業(yè)務數(shù)據(jù)為批量(多筆)業(yè)務數(shù)據(jù);(2)業(yè)務處理的數(shù)據(jù)源不僅僅是單筆交易數(shù)據(jù)報文,有可能是數(shù)據(jù)文件;
[0179]實時調度模塊810當所述異步分析模塊806根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;分析異步分析模塊806中所述異步批處理業(yè)務的業(yè)務類型,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理,所述實時調度任務包含但不限于登記簿、生產(chǎn)各種報表等;實時調度任務主要是針對業(yè)務處理量比較少的業(yè)務,可以支持聯(lián)機等待異步處理的返回結果,可以將所述異步批處理交易模擬成聯(lián)機交易;
[0180]異步調度模塊812用于當異步分析模塊806根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理;分析異步分析模塊806中所述異步批處理業(yè)務的業(yè)務類型,當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理,所述異步調度任務包含但不限于賬戶結息、日結單、公積金匯繳、批量文件業(yè)務、大報文傳輸業(yè)務等;異步調度任務主要針對業(yè)務處理量較大的業(yè)務,可以將所述異步批處理業(yè)務存儲于內存中,可以等待任務調度主控程序進行輪訓查詢并執(zhí)行;
[0181]預約任務模塊814用于當異步分析模塊806根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為預約任務時,對所述異步批處理業(yè)務進行預約任務處理;預約任務根據(jù)調度時間,可以將任務分為周期性任務和定時執(zhí)行任務;執(zhí)行周期性任務,需對所述周期性任務進行調度時間間隔設置,可以對所述異步批處理業(yè)務相隔所述調度時間間隔進行周期性輪訓調度執(zhí)行;執(zhí)行定時執(zhí)行任務時,需對所述定時執(zhí)行任務進行調度允許時間段設置,可以對所述異步批處理在所述允許時間段內進行定時業(yè)務執(zhí)行處理;
[0182]優(yōu)先管理模塊816用于當所述實時調度模塊810對所述異步批處理業(yè)務進行實時調度處理或者當所述異步調度模塊812對所述異步批處理業(yè)務進行異步調度處理時,根據(jù)所述異步批處理業(yè)務的業(yè)務類型和/或業(yè)務需要,可以對所述異步批處理業(yè)務進行優(yōu)先級別設定;
[0183]消息推送模塊818用于在所述實時調度模塊810對所述異步批處理業(yè)務進行實時調度處理結束后或者在所述異步調度模塊812對所述異步批處理業(yè)務進行異步調度處理結束后,或者在所述預約任務模塊814對所述異步批處理業(yè)務進行異步調度處理結束后,可以通過異步消息隊列向客戶端推送任務處理結果。
[0184]參見圖9,是本發(fā)明實施例提供的實時調度模塊示意圖,其中,如圖9所示,實時調度模塊810包括:實時任務創(chuàng)建單元8100、實時任務池單元8102、實時主控單元8104、實時滿載單元8106、數(shù)據(jù)切片單元8108、數(shù)據(jù)并發(fā)單元8110,其中
[0185]實時任務創(chuàng)建單元8100,用于根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的實時調度任務;創(chuàng)建所述異步批處理業(yè)務首先需要對實時調度任務進行定義,所述實時調度任務定義是管理預約任務,將預約任務保存到實時調度任務定義表中;實時調度任務生成調度主控會根據(jù)實時調度任務定義表中的數(shù)據(jù)來生成執(zhí)行任務。另外,對已經(jīng)定義生產(chǎn)的實時調度異步任務,通過實時調度任務注冊類進行管理,即通過數(shù)據(jù)庫表注冊實時調度任務完成后,進行調度并立即執(zhí)行實時調度任務;
[0186]實時調度任務注冊過程具體如下:可以根據(jù)每個實時調度任務類型調用相應的己0八方法(其中(10八方法用于添加異步任務),可以往實時調度任務數(shù)據(jù)表和參數(shù)表寫入任務相關信息;然后對于需要即刻執(zhí)行的任務可以調用方法(用于添加并執(zhí)行異步任務),該方法會先將狀態(tài)為執(zhí)行中的任務信息插入到任務信息表和參數(shù)表中,并可以通過對應的任務執(zhí)行器直接調度執(zhí)行該任務;
[0187]實時任務池單元8102,用于將所述實時任務創(chuàng)建單元8100創(chuàng)建的所述實時調度任務分配到相應的實時調度任務池;
[0188]實時主控單元8104,用于將實時任務池單元8102分配到所述實時調度任務池中的所述實時調度任務進行實時調度處理,并將所述異步批處理業(yè)務的處理結果進行實時返回;
[0189]實時滿載單元8106,用于判斷實時任務池單元8102中所述的實時調度任務池是否滿載,當判斷出實時調度任務池滿載,則拒絕調度執(zhí)行所述實時調度任務;
[0190]數(shù)據(jù)切片單元8108,用于將所述異步批處理業(yè)務的數(shù)據(jù)進行數(shù)據(jù)切片處理,得到所述異步批處理業(yè)務的切片數(shù)據(jù);
[0191]數(shù)據(jù)切片與任務調度邏輯無關,主要為批任務作業(yè)中大批量切片處理提供規(guī)范和支持。數(shù)據(jù)切片機制可以包括:數(shù)據(jù)切片邏輯接口(IChunkHandlerCD)、數(shù)據(jù)切片處理接口(IChunk)和一個批量數(shù)據(jù)處理邏輯BaseChunkJob。其中,批量數(shù)據(jù)處理邏輯BaseChunkJob根據(jù)用戶傳入的IChunkHandler〈T>對象,循環(huán)獲取并處理批量數(shù)據(jù)的一個切片;記錄處理接口(IChunkHandler〈T>)負責從數(shù)據(jù)源獲取當前待處理的數(shù)據(jù)切片;數(shù)據(jù)切片處理接口(IChunk)負責提供某數(shù)據(jù)切片的處理邏輯。另外,批量數(shù)據(jù)處理邏輯BaseChunkJob是批量數(shù)據(jù)切片處理的入口類,BaseChunkJob依賴于IChunkHandler〈T>對象實現(xiàn)對數(shù)據(jù)切片的獲??;記錄處理接口 IChunkHandler〈T>需要開發(fā)人員實現(xiàn)3個方法:hasNextChunk O , nextChunk O 和 close()方法,具體為:hasNextChunk O 返回 boolean 值,判斷數(shù)據(jù)源是否處理完畢;neXtChunk()返回下一個待處理數(shù)據(jù)切片;cl0Se()用于批處理完畢后關閉數(shù)據(jù)源、文件等資源。IChunk包含方法:handleData(), handleDataO方法負責實現(xiàn)對一個切片的數(shù)據(jù)進行處理的邏輯;
[0192]數(shù)據(jù)并發(fā)單元8110,用于對所述數(shù)據(jù)切片單元得到的所述切片數(shù)據(jù)進行多線程批任務的并發(fā)處理。
[0193]參見圖10,是本發(fā)明實施例提供的異步調度模塊示意圖,其中,如圖10所示,異步調度模塊812包括:異步任務創(chuàng)建單元8120、異步任務池單元8122、異步主控單元8124、異步滿載單元8126、數(shù)據(jù)切片單元8128、數(shù)據(jù)并發(fā)單元81210,其中
[0194]異步任務創(chuàng)建單元8120,用于根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的異步調度任務;創(chuàng)建所述異步批處理業(yè)務首先需要對異步調度任務進行定義,所述異步調度任務定義是管理預約任務,將預約任務保存到異步調度任務定義表中;異步調度任務生成調度主控會根據(jù)任務定義表中的數(shù)據(jù)來生成執(zhí)行任務。另外,對已經(jīng)定義生產(chǎn)的異步調度任務,通過異步調度任務注冊類進行管理,即通過數(shù)據(jù)庫表注冊異步任務完成后,進行調度并立即執(zhí)行異步任務。
[0195]異步調度任務注冊過程具體如下:可以根據(jù)每個異步調度任務類型調用相應的doAddTask方法(其中doAddTask方法用于添加異步任務),可以往異步調度任務數(shù)據(jù)表和參數(shù)表寫入任務相關信息;然后對于需要即刻執(zhí)行的任務可以調用doExecTask方法(用于添加并執(zhí)行異步任務),該方法會先將狀態(tài)為執(zhí)行中的任務息插入任務息表和參數(shù)表,并可以通過對應的任務執(zhí)行器(TaskHandler)直接調度執(zhí)行該任務。
[0196]異步任務池單元8122,用于將所述異步任務創(chuàng)建單元8120創(chuàng)建的所述實時調度任務分配到相應的實時調度任務池;
[0197]異步主控單元8124,用于將異步任務池單元8122分配到所述異步調度任務池中的所述異步調度任務進行異步調度處理,并將所述異步批處理業(yè)務的處理結果進行返回;
[0198]異步滿載單元8126,用于判斷異步調度任務池是否滿載,
[0199]當判斷出異步調度任務池滿載,則采取以下處理方式:直接拒絕調度執(zhí)行本條異步調度任務,或者通過發(fā)起線程來處理所述異步調度任務,或者忽略處理所述異步調度任務;異步調度任務池管理一個線程池和等待隊列,當異步調度任務池滿載時,直接拒絕處理所述異步調度任務,將所述異步調度任務保存在等待線性隊列中,等待異步任務池不再滿載時,將本條異步批處理任務存儲于異步調度任務池中,等待下次調度執(zhí)行;或者通過發(fā)起線程來處理所述異步調度任務,所述異步批處理任務不被存儲于異步調度任務池等待后續(xù)調度執(zhí)行,而是由發(fā)起調度執(zhí)行的發(fā)起線程隊列進行直接處理;或者忽略處理所述異步調度任務,忽略所述異步批處理任務,拋棄處理;
[0200]數(shù)據(jù)切片單元8128,用于將所述異步批處理業(yè)務的數(shù)據(jù)進行數(shù)據(jù)切片處理,得到所述異步批處理業(yè)務的切片數(shù)據(jù);
[0201]數(shù)據(jù)切片與任務調度邏輯無關,主要為批任務作業(yè)中大批量切片處理提供規(guī)范和支持。數(shù)據(jù)切片機制可以包括:數(shù)據(jù)切片邏輯接口數(shù)據(jù)切片處理接口(101111110和一個批量數(shù)據(jù)處理邏輯8%60!皿0匕其中,批量數(shù)據(jù)處理邏輯88860111111^013根據(jù)用戶傳入的對象,循環(huán)獲取并處理批量數(shù)據(jù)的一個切片;記錄處理接口負責從數(shù)據(jù)源獲取當前待處理的數(shù)據(jù)切片;數(shù)據(jù)切片處理接口(101111110負責提供某數(shù)據(jù)切片的處理邏輯。另外,批量數(shù)據(jù)處理邏輯88860111111^013是批量數(shù)據(jù)切片處理的入口類,081860111111^013依賴于1011111紐對象實現(xiàn)對數(shù)據(jù)切片的獲??;記錄處理接口需要開發(fā)人員實現(xiàn)3個方法:1188^6X1:0111111^ () , 116X1:0111111^ ()和。1?386 ()方法,具體為返回 1^0016811 值,判斷數(shù)據(jù)源是否處理完畢皿“)返回下一個待處理數(shù)據(jù)切片$1086()用于批處理完畢后關閉數(shù)據(jù)源、文件等資源。1(?皿^包含方法:112111(1160211:21(), 11811(1161)81:8()方法負責實現(xiàn)對一個切片的數(shù)據(jù)進行處理的邏輯。
[0202]數(shù)據(jù)并發(fā)單元81210,用于對所述數(shù)據(jù)切片單元得到的所述切片數(shù)據(jù)進行多線程批任務的并發(fā)處理。
[0203]參見圖11,是本發(fā)明實施例提供的預約任務模塊示意圖,其中,如圖11所示,預約任務模塊814包括:周期性任務單元8140、定時任務單元8142,其中
[0204]周期性任務單元8140,用于執(zhí)行周期性任務,首先需對所述周期性任務進行調度時間間隔設置,對所述異步批處理業(yè)務相隔所述調度時間間隔進行周期性輪訓調度執(zhí)行;所述周期性任務包含但不限于公積金匯繳業(yè)務等;所述時間間隔可以設定為501??!或者11!或者其他的任意時長的時間間隔。根據(jù)周期性任務單元8140所設置的時間間隔,在間隔所述調度時間間隔對所述預約任務進行周期性輪訓調度執(zhí)行,例如,每隔501??!進行輪訓調度執(zhí)行公積金匯繳業(yè)務,或者每隔1卜進行輪訓調度執(zhí)行公積金匯繳業(yè)務,或者設定的其他時長的時間間隔進行輪訓調度執(zhí)行預約任務。
[0205]定時任務單元8142,用于執(zhí)行定時執(zhí)行任務,首先需對所述定時執(zhí)行任務進行調度允許時間段設置,對所述異步批處理在所述允許時間段內進行定時業(yè)務執(zhí)行處理;所述定時執(zhí)行任務包含但不限于大報文傳輸業(yè)務、日結單等;所述允許時間段可以設定為(14:00-15:00)或者(20:00-22:00)或者其他的任意允許時間段。根據(jù)定時任務單元8142所設置的調度允許時間段,在所述允許時間段內對所述預約任務進行定時調度執(zhí)行,例如,在(14:00-16:00)時間段對報文傳輸業(yè)務進行實時調度處理,或者在(20:00-22:00)時間段內對日結單業(yè)務進行實時調度處理等。
[0206]綜上所述,通過實施本發(fā)明實施例,提供一種異步批處理調度方法和系統(tǒng),本發(fā)明實施例進一步具有以下有益效果:
[0207]1、本發(fā)明提供了一種異步批處理調度方法,通過提供統(tǒng)一的批量業(yè)務開發(fā)框架,封裝公共邏輯,制定開發(fā)規(guī)范,統(tǒng)一聯(lián)機業(yè)務和批處理業(yè)務的處理方式,易于開發(fā)擴展、運維、監(jiān)控和異常處理;
[0208]2、根據(jù)業(yè)務類型的不同,異步批處理調度系統(tǒng)對不同類型的業(yè)務進行分發(fā)處理,不同的任務種類可以對應不同的任務處理池,有效提高了資源使用率;
[0209]3、實現(xiàn)批處理進行時間段控制,通過參數(shù)化配置,對于一些對實時性要求不高的批量處理任務,通過定義預約任務,將任務放在系統(tǒng)空閑時段運行,以保障系統(tǒng)在實時交易高峰時段有最大資源的使用權;對于一些實時要求較高的批量業(yè)務,可以不受此允許時間段的控制,進行實時調度。
[0210]4、提供數(shù)據(jù)切片機制,支持對批量業(yè)務數(shù)據(jù)的分片處理,并對業(yè)務的分片數(shù)據(jù)提供并發(fā)執(zhí)行處理,加快批量業(yè)務處理的速度;
[0211]5、提供了統(tǒng)一的異步處理機制,使任務受理與批量處理分離,任務受理之后通過異步機制實現(xiàn)任務處理,減少對系統(tǒng)資源的占用;同時支持任務異步處理的聯(lián)機返回等待,可以支持聯(lián)機和異步處理的相互轉換。
[0212]本領域普通技術人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機程序來指令相關的硬件來完成,所述的程序可存儲于一計算機可讀取存儲介質中,該程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,所述的存儲介質可為磁碟、光盤、只讀存儲記憶體(0651(1-01117 1611101*7,^01)或隨機存儲記憶體^00688161110等。
[0213]以上所揭露的僅為本發(fā)明一種較佳實施例而已,當然不能以此來限定本發(fā)明之權利范圍,本領域普通技術人員可以理解實現(xiàn)上述實施例的全部或部分流程,并依本發(fā)明權利要求所作的等同變化,仍屬于發(fā)明所涵蓋的范圍。
【權利要求】
1.一種異步批處理調度方法,其特征在于,包括: 接收批處理業(yè)務請求,統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量; 判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值,若為是,則分析所述異步批處理業(yè)務的業(yè)務類型; 當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理;當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。
2.如權利要求1所述的方法,其特征在于,所述判斷所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值之后還包括: 若為否,則對所述批處理業(yè)務進行聯(lián)機批處理。
3.如權利要求1所述的方法,其特征在于,所述數(shù)據(jù)門限值根據(jù)以下至少一項條件進行設置: 處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的種類。
4.如權利要求1所述的方法,其特征在于,所述對所述異步批處理業(yè)務進行實時調度處理包括: 根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的實時調度任務; 將所述實時調度任務分配到相應的實時調度任務池; 將所述分配到所述實時調度任務池的所述實時調度任務進行實時調度處理,并將所述異步批處理業(yè)務的處理結果進行實時返回。
5.如權利要求1或4所述的方法,其特征在于,所述對所述異步批處理業(yè)務進行實時調度處理包括: 當判斷出實時調度任務池滿載,則拒絕調度執(zhí)行所述實時調度任務。
6.如權利要求1所述的方法,其特征在于,所述對所述異步批處理業(yè)務進行異步調度處理包括: 根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的異步調度任務; 將所述異步調度任務分配到相應的異步調度任務池; 將所述分配到所述異步調度任務池的所述異步調度任務進行異步調度處理,并將所述異步批處理業(yè)務的處理結果進行返回。
7.如權利要求1或6所述的方法,其特征在于,所述對所述異步批處理業(yè)務進行異步調度處理包括: 當判斷出異步調度任務池滿載,則拒絕處理所述異步調度任務,或者通過發(fā)起線程來處理所述異步調度任務,或者忽略處理所述異步調度任務。
8.如權利要求1所述的方法,其特征在于,所述對所述異步批處理業(yè)務進行實時調度處理或者對所述異步批處理業(yè)務進行異步調度處理,包括: 將所述異步批處理業(yè)務的數(shù)據(jù)進行數(shù)據(jù)切片處理,得到所述異步批處理業(yè)務的切片數(shù)據(jù); 對所述切片數(shù)據(jù)進行多線程批任務的并發(fā)處理。
9.如權利要求1所述的方法,其特征在于,方法還包括: 根據(jù)所述異步批處理業(yè)務的業(yè)務類型和/或業(yè)務需要,對所述異步批處理業(yè)務進行優(yōu)先級別設定; 所述對所述異步批處理業(yè)務進行實時調度處理或者對所述異步批處理業(yè)務進行異步調度處理包括: 按照所述設定的優(yōu)先級別,優(yōu)先對優(yōu)先級別高的異步批處理業(yè)務進行調度處理。
10.如權利要求1所述的方法,其特征在于,方法還包括: 當根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為預約任務時,對所述異步批處理業(yè)務進行預約任務處理; 所述對所述異步批處理業(yè)務進行預約任務處理包括: 當根據(jù)調度時間將所述預約任務分為周期性任務時,對所述周期性任務進行調度時間間隔設置,對所述異步批處理業(yè)務相隔所述調度時間間隔進行周期性輪訓調度執(zhí)行; 當根據(jù)調度時間將所述預約任務分為定時執(zhí)行任務時,對所述定時執(zhí)行任務進行調度允許時間段設置,對所述異步批處理在所述允許時間段內進行定時業(yè)務執(zhí)行處理。
11.如權利要求1所述的方法,其特征在于,方法還包括: 在所述對所述異步批處理業(yè)務進行實時調度處理結束后或者對所述異步批處理業(yè)務進行異步調度處理結束后,通過異步消息隊列向客戶端推送任務處理結果。
12.—種異步批處理調度系統(tǒng),其特征在于,包括: 接收模塊,接收批處理業(yè)務請求; 計算模塊,用于統(tǒng)計計算所述批處理業(yè)務的交易處理數(shù)據(jù)量; 判斷模塊,用于判斷所述計算模塊計算的所述交易處理數(shù)據(jù)量是否大于數(shù)據(jù)門限值; 異步分析模塊,用于當所述判斷模塊輸出為是時,分析所述異步批處理業(yè)務的業(yè)務類型; 實時調度模塊,用于當所述異步分析模塊根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為實時調度任務時,對所述異步批處理業(yè)務進行實時調度處理; 異步調度模塊,用于當異步分析模塊根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為異步調度任務時,對所述異步批處理業(yè)務進行異步調度處理。
13.如權利要求12所述的系統(tǒng),其特征在于,系統(tǒng)還包括: 聯(lián)機處理模塊,用于當所述判斷模塊輸出為否時,對所述批處理業(yè)務進行聯(lián)機批處理。
14.如權利要求12所述的系統(tǒng),其特征在于,所述數(shù)據(jù)門限值根據(jù)以下至少一項條件進行設置: 處理所述批處理業(yè)務的設備性能、所述批處理業(yè)務的復雜度、所述批處理業(yè)務的數(shù)據(jù)量或所述批處理業(yè)務的種類等。
15.如權利要求12所述的系統(tǒng),其特征在于,所述實時調度模塊包括: 實時任務創(chuàng)建單元,用于根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的實時調度任務; 實時任務池單元,用于將所述實時任務創(chuàng)建單元創(chuàng)建的所述實時調度任務分配到相應的實時調度任務池; 實時主控單元,用于將分配到所述實時調度任務池中的所述實時調度任務進行實時調度處理,并將所述異步批處理業(yè)務的處理結果進行實時返回。
16.如權利要求12或15所述的系統(tǒng),其特征在于,所述實時調度模塊包括: 實時滿載單元,用于當判斷出實時調度任務池滿載,則拒絕調度執(zhí)行所述實時調度任務。
17.如權利要求12所述的系統(tǒng),其特征在于,所述異步調度模塊包括: 異步任務創(chuàng)建單元,用于根據(jù)所述異步批處理業(yè)務創(chuàng)建相應的異步調度任務; 異步任務池單元,用于將所述異步任務創(chuàng)建單元創(chuàng)建的所述異步調度任務分配到相應的異步調度任務池; 異步主控單元,用于將分配到所述異步調度任務池中的所述異步調度任務進行異步調度處理,并將所述異步批處理業(yè)務的處理結果進行返回。
18.如權利要求12或17所述的系統(tǒng),其特征在于,所述異步調度模塊還包括: 異步滿載單元,用于當判斷出異步調度任務池滿載,則拒絕處理所述異步調度任務,或者通過發(fā)起線程來處理所述異步調度任務,或者忽略處理所述異步調度任務。
19.如權利要求12所述的系統(tǒng),其特征在于,所述實時調度模塊或所述異步調度模塊包括: 數(shù)據(jù)切片單元,用于將所述異步批處理業(yè)務的數(shù)據(jù)進行數(shù)據(jù)切片處理,得到所述異步批處理業(yè)務的切片數(shù)據(jù); 數(shù)據(jù)并發(fā)單元,用于對所述數(shù)據(jù)切片單元得到的所述切片數(shù)據(jù)進行多線程批任務的并發(fā)處理。
20.如權利要求12所述的系統(tǒng),其特征在于,系統(tǒng)還包括: 優(yōu)先級管理模塊,用于當所述實時調度模塊對所述異步批處理業(yè)務進行實時調度處理或者當所述異步調度模塊對所述異步批處理業(yè)務進行異步調度處理時,根據(jù)所述異步批處理業(yè)務的業(yè)務類型和/或業(yè)務需要,對所述異步批處理業(yè)務進行優(yōu)先級別設定; 所述實時調度模塊對所述異步批處理業(yè)務進行實時調度處理或者所述異步調度模塊對所述異步批處理業(yè)務進行異步調度處理包括: 按照所述優(yōu)先級管理模塊設定的優(yōu)先級別,優(yōu)先對優(yōu)先級別高的異步批處理業(yè)務進行調度處理。
21.如權利要求12所述的系統(tǒng),其特征在于,系統(tǒng)還包括: 預約任務模塊,用于當異步分析模塊根據(jù)業(yè)務類型分析出所述異步批處理業(yè)務為預約任務時,對所述異步批處理業(yè)務進行預約任務處理; 所述預約任務模塊包括: 周期性任務單元,用于當所述預約任務模塊根據(jù)調度時間將所述預約任務分為周期性任務時,對所述周期性任務進行調度時間間隔設置,對所述異步批處理業(yè)務相隔所述調度時間間隔進行周期性輪訓調度執(zhí)行; 定時任務單元,用于當所述預約任務模塊根據(jù)調度時間將所述預約任務分為定時執(zhí)行任務時,對所述定時執(zhí)行任務進行調度允許時間段設置,對所述異步批處理在所述允許時間段內進行定時業(yè)務執(zhí)行處理。
22.如權利要求12所述的系統(tǒng),其特征在于,系統(tǒng)還包括: 消息推送模塊,用于在所述實時調度模塊對所述異步批處理業(yè)務進行實時調度處理結束后或者在所述異步調度模塊對所述異步批處理業(yè)務進行異步調度處理結束后,通過異步消息隊列向客戶端推送任務處理結果。
【文檔編號】G06F9/50GK104407922SQ201410594848
【公開日】2015年3月11日 申請日期:2014年10月29日 優(yōu)先權日:2014年10月29日
【發(fā)明者】伍輝, 吳澤童, 羅新仁, 周小偉 申請人:中國建設銀行股份有限公司