




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、銀行卡統(tǒng)計(jì)分析系統(tǒng)銀行卡統(tǒng)計(jì)分析系統(tǒng)調(diào)度系統(tǒng)的改進(jìn)方案調(diào)度系統(tǒng)的改進(jìn)方案文檔信息文檔信息編寫者編寫日期審核者審核日期批準(zhǔn)人批準(zhǔn)日期變更歷史變更歷史日期日期變更描述變更描述批準(zhǔn)批準(zhǔn)文檔資料分發(fā)文檔資料分發(fā)姓名姓名職位職位機(jī)構(gòu)機(jī)構(gòu)目目 錄錄1 1概述概述.11.1目的.11.2預(yù)期的讀者和閱讀建議.11.3文檔約定.11.4參考文獻(xiàn).12 2改進(jìn)方案改進(jìn)方案.22.1背景.22.2目標(biāo).22.3術(shù)語.22.4改造思路.32.4.1模型表結(jié)構(gòu)的調(diào)整 .32.4.2計(jì)算運(yùn)行邏輯 .52.4.3處理邏輯 .52.4.4偽代碼實(shí)現(xiàn)描述 .62.5結(jié)束語.7第 1 頁1 1概述概述1.11.1 目的目的1.
2、21.2 預(yù)期的讀者和閱讀建議預(yù)期的讀者和閱讀建議1.31.3 文檔約定文檔約定1.41.4 參考文獻(xiàn)參考文獻(xiàn)第 2 頁2 2改進(jìn)方案改進(jìn)方案2.12.1 背景背景 目前的調(diào)度系統(tǒng)雖然功能強(qiáng)大,但是在處理模式上只有兩種模式包括每天運(yùn)行或不運(yùn)行等,很難適應(yīng)現(xiàn)代企業(yè)的數(shù)據(jù)處理。2.22.2 目標(biāo)目標(biāo)一、現(xiàn)代調(diào)度系統(tǒng)除了每天不運(yùn)行或運(yùn)行作業(yè)外,還能處理年初末、月初末、周末、旬、半年初末作業(yè)等,系統(tǒng)可以自定義。二、不影響白天客戶訪問,ETL 分時(shí)段運(yùn)行2.32.3 術(shù)語術(shù)語1、每天處理(every day running,以下簡稱 RRR):表示此作業(yè)每天運(yùn)行;2、指定月的某日處理(special d
3、ay running,以下簡稱 nnR,nn 是數(shù)字):表示此作業(yè)在 2-27(大月包含 28、29、30,小月包含 28、29,閏月包含 28)日中的指定日運(yùn)行;3、周六處理(Saturday running,以下簡稱 W6R):表示此作業(yè)在每周六運(yùn)行;4、周日處理(Sunday running, 以下簡稱 W7R): 表示此作業(yè)在每周日運(yùn)行;5、周末處理(Saturday& Sunday running, 以下簡稱 WER):表示此作業(yè)在每周六、日運(yùn)行;6、上旬初處理(early start-month running,以下簡稱 EMS): 表示此作業(yè)在每上旬的第一天運(yùn)行;7、上旬
4、末處理(early end-month running,以下簡稱 EME): 表示此作業(yè)在每上旬的最末一天運(yùn)行;8、中旬初處理(middle start-month running,以下簡稱 MMS): 表示此作業(yè)在每中旬的第一天運(yùn)行;9、中旬末處理(middle end-month running,以下簡稱 MME): 表示此作業(yè)在每中旬的最末一天運(yùn)行;10、下旬初處理(last start-month running,以下簡稱 LMS): 表示此作業(yè)在每下旬的第一天運(yùn)行;11、下旬末處理(last end-month running,以下簡稱 LME): 表示此作業(yè)在每下旬的最末一天運(yùn)行;
5、12、旬初處理(ten-days start-month running,以下簡稱 TMS): 表示此作業(yè)在每旬的第一天運(yùn)行;13、旬末處理(ten-days end-month running,以下簡稱 TME): 表示此作業(yè)在每旬的最末一天運(yùn)行;第 3 頁14、月初處理(start-month running,以下簡稱 MSR): 表示此作業(yè)在每月的第一天運(yùn)行;15、月末處理(end-month running,以下簡稱 MER): 表示此作業(yè)在每月的最末一天運(yùn)行;16、上半年末處理(early half end-year running,以下簡稱 EHE): 表示此作業(yè)在 06月 30
6、日運(yùn)行;17、下半年初處理(last half start-year running,以下簡稱 LHS): 表示此作業(yè)在07 月 1 日運(yùn)行;18、年初處理(start-year running,以下簡稱 YSR): 表示此作業(yè)在 01 月 01 日運(yùn)行;19、年末處理(end-year running,以下簡稱 YER): 表示此作業(yè)在 12 月 31 日運(yùn)行;20、季末處理(end-quarter running,以下簡稱 QER): 表示此作業(yè)在 3 月 31 日、6月 30 日、9 月 30 日、12 月 31 日運(yùn)行;2.42.4 改造思路改造思路2.4.12.4.1模型表結(jié)構(gòu)的調(diào)整
7、模型表結(jié)構(gòu)的調(diào)整2.4.1.12.4.1.1 解決某天運(yùn)行的問題解決某天運(yùn)行的問題在原有的調(diào)度系統(tǒng)模型中 job 表增加一個(gè)字段proc_mode char (100) not null, -處理模式此字段包含了RRR、nnR、W6R、W7R、WER、EMS、EME、MMS、MME、LMS、LME、TMS、TME、MSR、MER、EHE、LHS、YSR、YER、QER 的任意組合,譬如: 1、proc_mode=“24R,YER”:表示在每月的 24 日運(yùn)行,或者在年末運(yùn)行; 2、proc_mode=“RRR”:表示在每天運(yùn)行; 3、proc_mode=“YSR,MER”:表示在 01 月 0
8、1 日運(yùn)行,或者在每月末運(yùn)行;2.4.1.22.4.1.2 解決某時(shí)段運(yùn)行的問題解決某時(shí)段運(yùn)行的問題 在原有的調(diào)度系統(tǒng)模型中,node_info 表增加一個(gè)字段run_phrase char (100) not null ,運(yùn)行時(shí)段 內(nèi)容可表述為:0000-0900;1640-2359 描述在 0 點(diǎn)中到早上 9 點(diǎn),或下午 16 點(diǎn) 40 分到 23 點(diǎn) 59 分這個(gè)時(shí)段對應(yīng)此節(jié)點(diǎn)是可以允許運(yùn)行的。每段用;分隔,區(qū)間用-分隔。 在 ReleaseQue 函數(shù)中增加一段程序控制: if (nSucFlg =1) /*成功*/ /*EXEC SQL SELECT parall_num , use
9、d_parall_num INTO :nParallNum,:nUsedParallNum第 4 頁 FROM node_info WHERE node_id=:szNodeId;*/ EXEC SQL SELECT parall_num , used_parall_num,run_phrase INTO :nParallNum,:nUsedParallNum,:szRunPhrase FROM node_info WHERE node_id=:szNodeId; if ( nUsedParallNum = nParallNum ) PrintLogX(4,pszLogFileName,%-s
10、 szNodeId%-s已用的并發(fā)數(shù)%-d已=節(jié)點(diǎn)總并發(fā)數(shù)%-d,放棄, ReleaseQue,szNodeId,nUsedParallNum , nParallNum); break;/*進(jìn)入到下一個(gè)節(jié)點(diǎn)的輪訓(xùn)*/ if ( PermStart(szRunPhrase,pszLogFileName) !=0) PrintLogX(4,pszLogFileName,%-s 此時(shí)段,szNodeId%-s不適合運(yùn)行,選擇放棄, ReleaseQue,szNodeId); break;/*進(jìn)入到下一個(gè)節(jié)點(diǎn)的輪訓(xùn)*/ 2.4.1.32.4.1.3 在周六、周日在周六、周日 2424 時(shí)時(shí)段全部允許運(yùn)
11、行問題時(shí)時(shí)段全部允許運(yùn)行問題 在原有的調(diào)度系統(tǒng)模型中,node_info 表增加一個(gè)字段week_run_mode char (1) not null ,周末 24 小時(shí)允許運(yùn)行模式 內(nèi)容可表述為:1-啟用 24 小時(shí)運(yùn)行模式,其余不允許 處理邏輯:優(yōu)先判定 week_run_mode 的運(yùn)行模式,如果是周末,采用 24 小時(shí)運(yùn)行模式,則不需判定。如果不是周末或者不是 24 小時(shí)運(yùn)行模式,則判定 run_prhase。 2.4.1.42.4.1.4 是否起用運(yùn)行模式問題是否起用運(yùn)行模式問題 在原有的調(diào)度系統(tǒng)模型中,node_info 表增加一個(gè)字段run_mode_flg char (1) n
12、ot null ,是否起用運(yùn)行模式 內(nèi)容可表述為:1-起用運(yùn)行模式,其余不允許 處理邏輯:優(yōu)先判定 run_mode_flg 的起用,如果為1則再優(yōu)先判定week_run_mode 的運(yùn)行模式,如果是周末,采用 24 小時(shí)運(yùn)行模式,則不需判定。如果不是周末或者不是 24 小時(shí)運(yùn)行模式,則判定 run_prhase;否則其他模式無效 第 5 頁2.4.22.4.2計(jì)算運(yùn)行邏輯計(jì)算運(yùn)行邏輯 在下圖中,如果 B1 標(biāo)識為 B1(0)或者!B1(1,MER)分別表示不運(yùn)行或者不在每月末不運(yùn)行。 而實(shí)際運(yùn)行圖則去掉 A1B1,B1C1,B1C2 邊,增加 A1C1,A1C2 邊的聯(lián)接。 原來 A1 作業(yè)
13、運(yùn)行完后,則運(yùn)行 B1 作業(yè),等 B1 作業(yè)運(yùn)行完后,再運(yùn)行 C1 作業(yè),并把 C2 作業(yè)置成可運(yùn)行狀態(tài);C2 等待 B2 作業(yè)運(yùn)行完后,再運(yùn)行。實(shí)際運(yùn)行圖則原來 A1 作業(yè)運(yùn)行完后,則運(yùn)行運(yùn)行 C1 作業(yè),并把 C2 作業(yè)置成可運(yùn)行狀態(tài); C2 等待 B2 作業(yè)運(yùn)行完后,再運(yùn)行。實(shí)際運(yùn)行圖如下圖示:2.4.32.4.3處理邏輯處理邏輯1、保留 B1 的父作業(yè) A1;2、保留 B1 的作業(yè) C1,C23、利用 A1 與 C1、C2 的的笛卡積關(guān)系,生成 A1C1,A1C2 的聯(lián)接依賴邊;A1A2B1B2C1C2A1A2B2C1C2第 6 頁2.4.42.4.4偽代碼實(shí)現(xiàn)描述偽代碼實(shí)現(xiàn)描述 1、
14、從 job 的每一個(gè)作業(yè)查找運(yùn)行標(biāo)志為1的作業(yè),抽取兩個(gè)標(biāo)志 run_flag和 proc_mode. DECLARE SQLTAG select node_id,job_id,run_flag,proc_mode from job where run_flag=1(聲明游標(biāo)) FETCH SQLTAG into :szNode_Id,:szJob_id,:szRun_Flag,szProc_Mode(獲取每個(gè)作業(yè)) 2、計(jì)算調(diào)度日期 exec_date,生成符合 19 個(gè)處理模式(除 RRR,nnR 標(biāo)志外)內(nèi)符合條件的標(biāo)志 current_proc_mode;在 proc_mode 中查找
15、RRR或nnR或current_proc_mode. nExec_Flag=Chk_Proc_Mode(szExec_Date,szProc_Mode) 如果 nExec_Flag=1,則在調(diào)度為 exec_date 這個(gè)日期,此作業(yè)運(yùn)行,否則不運(yùn)行; 3、如果存在,則把 job_relation 表中的關(guān)系鏈放入到 job_rel_status 中。從job 選取下一條,轉(zhuǎn)第一步,直到結(jié)束。 如果 nExec_Flag=1,然后 Insert into job_rel_status (node_id,job_id,up_node_id,up_job_id,proc_status,up_pro
16、c_status) select node_id,job_id,up_node_id,up_job_id,N,N from job_relationwhere node_id=:szNode_Id and job_id=:szJob_Id 4、準(zhǔn)備重建依賴關(guān)系。從 job 的每一個(gè)作業(yè)查找運(yùn)行標(biāo)志為0 (不運(yùn)行)的作業(yè),抽取 1 個(gè)標(biāo)志 run_flag.主要目的,查找不運(yùn)行作業(yè),以便剔除從第 3 步獲得不運(yùn)行的父親作業(yè)。 DECLARE SQLTAG1 select node_id,job_id,run_flag from job where run_flag=0(聲明游標(biāo)) FETCH S
17、QLTAG into :szNode_Id,:szJob_id,:szRun_Flag(獲取每個(gè)作業(yè)) 5、以不運(yùn)行作業(yè)為基,在 job_relation 表中保留此作業(yè)的父親作業(yè)。放入父親隊(duì)列 ParentList 中; DECLARE SQLTAG2 select up_node_id,up_job_id from job_relation where node_id=:szNode_Id and job_id=:szJob_Id(聲明游標(biāo)) FETCH SQLTAG2 into :szUp_Node_Id,:szUp_Job_id(獲取每個(gè)作業(yè)) ParentList=ParentAdd
18、(szUp_Node_Id,szUp_Job_Id) 6、以不運(yùn)行作業(yè)為基,在 job_relation 表中保留此作業(yè)的孩子作業(yè)。放入孩子隊(duì)列 ChildList 中; DECLARE SQLTAG3 select up_node_id,up_job_id from job_relation where up_node_id=:szNode_Id and up_job_id=:szJob_Id(聲明游標(biāo))第 7 頁 FETCH SQLTAG3 into :szChild_Node_Id,:szChild_Job_id(獲取每個(gè)作業(yè)) ChildList=ChildAdd(szChild_Node_Id, szChild_Job_id) 7、從 job_rel_status 刪除把不運(yùn)行作業(yè)作為父親的作業(yè)鏈(依賴關(guān)系) 。 Delete from job_rel_status where up_node_id=:szNode_Id and up_job_id=:szJob_Id8、用 ChildList 作為作業(yè),用 ParentList 作為父作業(yè),構(gòu)成笛卡兒乘積插入job_rel_status 中。While(lParent!=null) While (lChild!=null) Insert into job_rel_status (nod
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度景區(qū)景點(diǎn)精細(xì)化保潔服務(wù)協(xié)議
- 二零二五年度二手車轉(zhuǎn)讓及過戶手續(xù)協(xié)議
- 二零二五年度新型小區(qū)門衛(wèi)管理及應(yīng)急預(yù)案合同
- 2025年度綠色節(jié)能庫房租賃合同
- 2025年度高新技術(shù)企業(yè)員工勞動(dòng)合同解除終止協(xié)議書
- 2025年度物業(yè)服務(wù)合同主體變更協(xié)議范本
- 二零二五年度大數(shù)據(jù)服務(wù)股權(quán)投資與轉(zhuǎn)讓協(xié)議
- 二零二五年度冷凍庫租賃及冷鏈物流配送中心建設(shè)合同
- 二零二五年度離婚協(xié)議中財(cái)產(chǎn)分割執(zhí)行監(jiān)督補(bǔ)充協(xié)議
- 蘇武牧羊傳紅色故事觀后感
- 消化科常見管道的護(hù)理課件
- 汽車修理常用配件信息公示
- 同濟(jì)大學(xué)信紙
- 門式鋼架廠房設(shè)計(jì)
- 口腔模型的灌制-醫(yī)學(xué)課件
- 煤礦班組建設(shè)實(shí)施方案
- (完整word版)新《中華頌》朗誦稿
- 糖尿病健康教育及飲食指導(dǎo)
- PFMEA模板完整版文檔
- 三無曲線(有緩)繩正法撥道自動(dòng)計(jì)算表
- 教學(xué)能力比賽決賽 《英語》教案
評論
0/150
提交評論