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在线观看| 亚洲第一视频免费在线| 欧美日韩国产成人高清视频| 国产精品视频系列专区| 国产一区二区在线视频观看| 中文字幕乱码中文乱码51精品| 99久久精品国产麻豆婷婷| 2021国产乱人伦在线播放| 国产一区二区三区免费观看| 亚洲Aⅴ无码专区在线观看q| 久久黄色影院| 国产精品极品美女自在线看免费一区二区| 国产精品流白浆在线观看| 性欧美在线| 国产精品尤物在线| 99ri精品视频在线观看播放| 亚洲无码精彩视频在线观看 | 91视频区| 亚洲成A人V欧美综合天堂| 日韩av无码精品专区| 亚洲清纯自偷自拍另类专区| 99国产精品免费观看视频| 免费毛片a| 成人福利免费在线观看| 成人a免费α片在线视频网站| 日韩第一页在线| 亚洲欧美天堂网| 亚洲国产中文精品va在线播放| 亚洲午夜国产精品无卡| 精品国产成人a在线观看| 国产真实乱子伦视频播放| 一区二区自拍| 亚洲一区二区三区国产精华液| 日韩美女福利视频| 91精品日韩人妻无码久久| 91免费观看视频| 国产嫖妓91东北老熟女久久一| 国产一区二区三区在线观看视频 | 成人永久免费A∨一级在线播放| 亚洲开心婷婷中文字幕| 制服丝袜一区| 国产一二视频| 久久精品国产999大香线焦| 亚洲天堂在线免费| 日韩中文无码av超清| 91色综合综合热五月激情| 国内精品视频在线| 浮力影院国产第一页| 国产精品福利在线观看无码卡| av在线人妻熟妇| 青草视频久久| 亚洲第一色网站| 91热爆在线| 欧美无专区| 亚洲精品黄| av在线无码浏览| 在线高清亚洲精品二区| 午夜精品久久久久久久无码软件 | 国产国语一级毛片| 亚洲视频免费在线看| 日韩欧美中文字幕在线精品| 无码专区国产精品第一页| 久草中文网| 亚洲福利视频网址| 欧洲亚洲一区| 黄色一级视频欧美| 欧美视频在线不卡| 亚洲成人一区在线| 国产无码精品在线播放| 精品久久久久久成人AV| 丁香五月亚洲综合在线| 亚洲色图狠狠干| 国产视频大全| 又猛又黄又爽无遮挡的视频网站| 亚洲无码高清免费视频亚洲| 午夜影院a级片| 亚洲国产系列| 丝袜高跟美脚国产1区| 日韩精品毛片|