999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

Tomcat執行定時任務實現不同系統數據導入

2015-09-25 09:14:14葉均隆葉均明何銀川
現代計算機 2015年9期
關鍵詞:方法系統

葉均隆,葉均明,何銀川

(1.廣東南方職業學院信息技術系,江門 529000;2.江門中心醫院,江門 529000;3.廣東南方職業學院信息技術系,江門529000)

Tomcat執行定時任務實現不同系統數據導入

葉均隆1,葉均明2,何銀川3

(1.廣東南方職業學院信息技術系,江門 529000;2.江門中心醫院,江門529000;3.廣東南方職業學院信息技術系,江門529000)

0 引言

隨著企業的發展,企業的信息化系統也越來越多,但新引入的系統往往需要實現新舊系統之間的數據聯系,也有原來系統業務某些特定需求增加也可能需要不同系統的數據聯系。那么實現企業不同系統數據傳遞有那些方法呢?據筆者了解通常有這些實現方法:消息中間件(如:JMS)、專用數據接口程序、Web Services等方法。但是根據筆者以往多年的實踐經驗,采用什么方法實際會根據企業集團需求以及系統的實際情況采用合適的方法。有些開發者在遇到這類似的問題的時候一般會考慮使用Web Services實現。但是也有不少是這些情況——集團企業只需一個信息系統向另一信息系統導入數據;每天有大量數據輸入到一個系統里并且數據來自另一個系統或者多個系統。筆者多年的項目經歷中都遇過。其中有一次,一企業引進的了某公司的系統,系統要求收集多個部門信息,這些信息一般都保存在各個部門正在使用的信息系統里。其中有一個系統正好是筆者負責的系統。提出需求是系統要把每小時生產的多個產品的成分信息定時導入新系統里。筆者也曾建議采用Web Services提供數據接口方法實現,但是對方的項目經理和相關技術人員則認為這樣會增加新系統的負擔和二次開發的工作量。深入分析,對方并非無理。企業每天生產的產品數量當然不少的,并且種類和成分構成也不盡相同,那么每天的數據量當然很多的,如果采用是Web Services,系統有三種方法實現:①需要的時候再調用Web Services獲得數據,完成系統信息表現,數據沒有導入系統中;②需要的時候再調用Web Services獲得數據并導入系統中;③定時通過Web Services獲得數據并導入系統。由于系統是產品型(即通用軟件),方法①有可能導致系統多個模塊的業務邏輯進行更改,并且功能實現困難、性能下降,顯然不大可能采用;方法②業務邏輯則不需改動,只需增加數據導入的功能,但速度上卻是軟肋——系統每天生成很多數據,更何況他們的系統還需要集團多個系統的數據,往往分析報表則需要多個部門數據,如果加上很長時間沒有觸發導入,那么一旦觸發時,生成的分析報表所使用的導入時間將是非常影響當時的工作效率的。方法③相比前面兩種要好,但增加系統開發、維護、測試的工作量,帶有殺雞焉用牛刀意味,另外還增加系統日常負擔,降低系統總體性能。因此,把數據導入任務交給具有原始數據的各系統完成。

1 數據導入怎樣實現

如果不采用Web Service完成數據導入,開發專用數據接口程序,開發工作也不少。經過一段時間的思索,假設在Web服務器實現定時執行任務,問題就迎刃而解,通過查找并閱讀大量相關文檔,了解到Java的Timer類能實現定時引發事件——設置Timer類一定的時間間隔,那么在間隔之后會準時調用已經安排好的任務(TimerTask類)。由于考慮系統實用性,當系統重啟時,系統能自動創建Timer對象并開始進行計劃任務,實現每隔一小時進行一次數據格式轉換并導入。那么用什么方式創建Timer對象是下一步要考慮的問題。如果在Servlet創建,需要在web.xml設置<load-onstartup>的值,理論是可行。設置代碼:

上面代碼”Xxx”,讀者可根據所需替換自定義的類名。考慮程序的穩定性,Timer對象的宿主的生存周期應該為系統的生命周期,使用第二種方法ServletContext偵聽器為宿主更適合。下面將詳細介紹第二種方法:

(1)使用ServletContext偵聽器要實現接口兩個方法

(2)上述代碼出現PutInContextListener類和PutIn-Bean類,它們的類名可以根據自己的需要自定義。PutInContextListener類是實現ServletContext偵聽器的,而PutInBean類也需要自己創建,它主要是業務邏輯實現,如:上面所說的數據導入功能。PutInBean類參考代碼如下:

上面代碼中“//在這里開發……”為數據導入的功能實現地方,讀者可以替換為自己要實現各類功能的程序代碼。不同系統的數據導入要考慮兩問題:①不同系統的數據格式一般是不一致的,需要相應地轉換。②導入數據之前先判斷哪些是已經導入的,哪些是沒有導入的。另外私有靜態變量isBusy是用來控制每次導入不能同一時間段有并行工作的(實際應用不會出現一個鐘頭以上的數據導入操作,但作為一個通用性代碼有必要設置的)。數據導入是不能并行的,同一時間段進行很容易導致相同的數據重復導入,那么會造成本次導數的數據回滾,從而導致這次導數失敗。本次導數運行完畢后,設置isBusy為false,下次導數則可以進行,設置isBusy為true則不行。其他的代碼非常簡單,不一一闡述。

(3)PutInContextListener類和PutInBean類開發完后,剩下就是部署PutInContextListener偵聽器類。

當然,上面的dataPutIn.servlet換成讀者自定義的包名。保存web.xml配置,把工程部署到服務器。啟動服務,定時任務就會執行。

2 結語

實際上一般還需要日志記錄運行結果,以方便日后系統維護,那么將PutInContextListener類里的System.out.println()替換為event.getServletContext().log()方法和PutInBean類里的System.out.println()替換為context. log()方法即可實現。

筆者也曾在其他異構系統里實現類似的數據導入功能,也試過開發專用程序和Web Service實現,但是開發較為復雜,如果此數據接口用在多個系統,那就比較適合,有些還需增加權限控制。類似本文的情況那么就使用Tomcat執行定時任務,將是不錯實現方法。

[1]程煒.基于Web Service的一種分布式體系結構[J].四川:計算機應用研究,2002

[2]鄭寧.JSP編程及案例分析[M].北京:清華大學出版社,2010

[3]關東升,田登山.JSP網絡程序設計.北京:北京郵電大學出版社,2011

[4]高張.提高Tomcat服務器運行性能的研究[J].湖北:計算機與數字工程,2008

[5]耿祥義.Java2實用教程(第4版).北京:清華大學出版社,2012

[6]孫衛琴.Tomcat與Java Web開發技術詳解.北京:電子工業出版社,2009

Timing Task;Data Import;Web Service;Timer;Servlet Context Listener

Tomcat Execute Timing Tasks to Achieve Different System Data Import

YE Jun-long1,YE Jun-ming2,HE Yin-chuan3
(1.Department of Information Technology,Guangdong Nanfang Vocational College,Jiangmen529000;2. Jiangmen Central Hospital,Jiangmen 529000;2.Department of Information Technology,Guangdong Nanfang Vocational College,Jiangmen 529000)

1007-1423(2015)09-0054-03

10.3969/j.issn.1007-1423.2015.09.013

葉均隆(1983-),男,廣東省江門人,本科,助教,研究方向為計算機科學與技術和教育技術學

葉均明(1980-),男,廣東江門人,本科,助理工程師,研究方向網絡工程和醫院信息化

何銀川(1984-),男,河南周口人,研究生,助教,研究方向為計算機教育、軟件工程、現代教育技術

2015-01-29

2015-03-03

重點介紹企業不同信息系統數據導入的其中一種實現方法,并比較其他實現方法的優劣,結合企業實際需求提出Tomcat執行定時任務實現不同系統數據導入。實現原理是通過PutInContextListener偵聽器實現ServletContext Listener接口并裝載Timer對象,Timer對象定時觸發PutInBean對象相應的方法,實現數據的導入。

定時任務;數據導入;Web Service;Timer;ServletContext偵聽器

Introduces a method to realize the import of data which between different enterprise information systems,and compared the other methods to realize the advantages and disadvantages,combined with the actual needs of enterprises,puts forward Tomcat execution timing task to achieve different system data import.The principle is to pass the PutInContextListener listener to implement the ServletContextListener interface and load the Timer object,timer object trigger timing method of the PutInBean object,to execute data import.

猜你喜歡
方法系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
學習方法
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
主站蜘蛛池模板: 国产精品永久免费嫩草研究院 | 亚洲欧美日韩中文字幕在线| 国产成人精品三级| 亚洲色图在线观看| 伦伦影院精品一区| 九九久久99精品| 91无码视频在线观看| 亚洲日韩Av中文字幕无码| 日本午夜精品一本在线观看| 在线观看热码亚洲av每日更新| 一本大道视频精品人妻| 国产美女精品在线| 日本欧美精品| 91精品专区| 国产视频大全| 午夜毛片免费看| 国产无码在线调教| 国产精品亚洲精品爽爽 | 精品三级在线| 亚洲国产第一区二区香蕉| 亚洲不卡影院| 在线视频97| 久久亚洲中文字幕精品一区| 91偷拍一区| 91黄色在线观看| 日韩精品毛片人妻AV不卡| julia中文字幕久久亚洲| 国产精品视频999| 亚洲国产成人无码AV在线影院L| 国产视频一二三区| 永久免费精品视频| 精品国产免费观看一区| jizz亚洲高清在线观看| 亚洲色无码专线精品观看| 亚洲精品高清视频| 亚洲国产精品无码AV| 亚洲av无码人妻| 五月六月伊人狠狠丁香网| 欧美成在线视频| 国产精品刺激对白在线| 久草国产在线观看| 日韩AV手机在线观看蜜芽| 免费国产好深啊好涨好硬视频| 日韩av手机在线| 国产鲁鲁视频在线观看| 久久综合五月| 国产美女久久久久不卡| 亚洲中久无码永久在线观看软件| 亚洲一区二区三区在线视频| 久久精品免费看一| 国产极品粉嫩小泬免费看| 精品福利一区二区免费视频| 在线观看视频一区二区| 成人午夜精品一级毛片| 日韩黄色在线| 天天干伊人| 啪啪永久免费av| 国产精品久久久久婷婷五月| 国产成人综合日韩精品无码不卡 | 99久久精品久久久久久婷婷| 喷潮白浆直流在线播放| 欧美午夜理伦三级在线观看| 99手机在线视频| 亚洲AV一二三区无码AV蜜桃| 亚洲第一区在线| 色综合激情网| 国产成人免费视频精品一区二区| 色老二精品视频在线观看| 免费无码又爽又刺激高| 久久久国产精品无码专区| 伊人AV天堂| 日韩成人在线网站| 成人a免费α片在线视频网站| 成年A级毛片| 亚洲国产日韩欧美在线| 九色视频一区| 久久99国产综合精品1| www.亚洲国产| 中文字幕第1页在线播| 91在线免费公开视频| 在线国产欧美| 国产00高中生在线播放|