• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      Tomcat執(zhí)行定時(shí)任務(wù)實(shí)現(xiàn)不同系統(tǒng)數(shù)據(jù)導(dǎo)入

      2015-09-25 09:14:14葉均隆葉均明何銀川
      現(xiàn)代計(jì)算機(jī) 2015年9期
      關(guān)鍵詞:江門代碼方法

      葉均隆,葉均明,何銀川

      (1.廣東南方職業(yè)學(xué)院信息技術(shù)系,江門 529000;2.江門中心醫(yī)院,江門 529000;3.廣東南方職業(yè)學(xué)院信息技術(shù)系,江門529000)

      Tomcat執(zhí)行定時(shí)任務(wù)實(shí)現(xiàn)不同系統(tǒng)數(shù)據(jù)導(dǎo)入

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

      (1.廣東南方職業(yè)學(xué)院信息技術(shù)系,江門 529000;2.江門中心醫(yī)院,江門529000;3.廣東南方職業(yè)學(xué)院信息技術(shù)系,江門529000)

      0 引言

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

      1 數(shù)據(jù)導(dǎo)入怎樣實(shí)現(xiàn)

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

      上面代碼”Xxx”,讀者可根據(jù)所需替換自定義的類名??紤]程序的穩(wěn)定性,Timer對象的宿主的生存周期應(yīng)該為系統(tǒng)的生命周期,使用第二種方法ServletContext偵聽器為宿主更適合。下面將詳細(xì)介紹第二種方法:

      (1)使用ServletContext偵聽器要實(shí)現(xiàn)接口兩個(gè)方法

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

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

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

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

      2 結(jié)語

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

      筆者也曾在其他異構(gòu)系統(tǒng)里實(shí)現(xiàn)類似的數(shù)據(jù)導(dǎo)入功能,也試過開發(fā)專用程序和Web Service實(shí)現(xiàn),但是開發(fā)較為復(fù)雜,如果此數(shù)據(jù)接口用在多個(gè)系統(tǒng),那就比較適合,有些還需增加權(quán)限控制。類似本文的情況那么就使用Tomcat執(zhí)行定時(shí)任務(wù),將是不錯(cuò)實(shí)現(xiàn)方法。

      [1]程煒.基于Web Service的一種分布式體系結(jié)構(gòu)[J].四川:計(jì)算機(jī)應(yīng)用研究,2002

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

      [3]關(guān)東升,田登山.JSP網(wǎng)絡(luò)程序設(shè)計(jì).北京:北京郵電大學(xué)出版社,2011

      [4]高張.提高Tomcat服務(wù)器運(yùn)行性能的研究[J].湖北:計(jì)算機(jī)與數(shù)字工程,2008

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

      [6]孫衛(wèi)琴.Tomcat與Java Web開發(fā)技術(shù)詳解.北京:電子工業(yè)出版社,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

      葉均?。?983-),男,廣東省江門人,本科,助教,研究方向?yàn)橛?jì)算機(jī)科學(xué)與技術(shù)和教育技術(shù)學(xué)

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

      何銀川(1984-),男,河南周口人,研究生,助教,研究方向?yàn)橛?jì)算機(jī)教育、軟件工程、現(xiàn)代教育技術(shù)

      2015-01-29

      2015-03-03

      重點(diǎn)介紹企業(yè)不同信息系統(tǒng)數(shù)據(jù)導(dǎo)入的其中一種實(shí)現(xiàn)方法,并比較其他實(shí)現(xiàn)方法的優(yōu)劣,結(jié)合企業(yè)實(shí)際需求提出Tomcat執(zhí)行定時(shí)任務(wù)實(shí)現(xiàn)不同系統(tǒng)數(shù)據(jù)導(dǎo)入。實(shí)現(xiàn)原理是通過PutInContextListener偵聽器實(shí)現(xiàn)ServletContext Listener接口并裝載Timer對象,Timer對象定時(shí)觸發(fā)PutInBean對象相應(yīng)的方法,實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。

      定時(shí)任務(wù);數(shù)據(jù)導(dǎo)入;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.

      猜你喜歡
      江門代碼方法
      精彩觀影,歡樂K歌 江門開平優(yōu)之名商務(wù)多功能影音室
      “江門之心”——東甲立交方案設(shè)計(jì)
      創(chuàng)世代碼
      動漫星空(2018年11期)2018-10-26 02:24:02
      創(chuàng)世代碼
      動漫星空(2018年2期)2018-10-26 02:11:00
      創(chuàng)世代碼
      動漫星空(2018年9期)2018-10-26 01:16:48
      創(chuàng)世代碼
      動漫星空(2018年5期)2018-10-26 01:15:02
      廣東江門“多證合一”再開全國先河
      可能是方法不對
      福彩公益金 傳遞溫暖情 走近江門福彩公益
      大社會(2016年5期)2016-05-04 03:41:51
      用對方法才能瘦
      Coco薇(2016年2期)2016-03-22 02:42:52
      获嘉县| 江北区| 民权县| 四子王旗| 莆田市| 台中县| 嘉鱼县| 青海省| 岳阳市| 姚安县| 永安市| 定兴县| 油尖旺区| 刚察县| 普宁市| 瓮安县| 蛟河市| 漯河市| 绥芬河市| 宣城市| 和龙市| 武义县| 维西| 庆安县| 阜新市| 泗水县| 大渡口区| 仪陇县| 甘泉县| 高要市| 固始县| 卢龙县| 屏东县| 凤山市| 钦州市| 永新县| 云林县| 阿图什市| 临武县| 攀枝花市| 公主岭市|