定時(shí)器怎么使用_第1頁(yè)
定時(shí)器怎么使用_第2頁(yè)
定時(shí)器怎么使用_第3頁(yè)
定時(shí)器怎么使用_第4頁(yè)
定時(shí)器怎么使用_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

定時(shí)器怎么使用java中定時(shí)器的簡(jiǎn)單使用1.首先肯定是容器一啟動(dòng)就要啟動(dòng)定時(shí)器,所以我們可以選擇把定時(shí)器寫在一個(gè)監(jiān)聽器里,容器一啟動(dòng)所以監(jiān)聽器也就跟著啟動(dòng),然后定時(shí)器就可以工作了。第一步,把自己寫的監(jiān)聽器加到web.xml中;第二步,寫一個(gè)監(jiān)聽器,實(shí)現(xiàn)ServletContextListener接口;第三步,寫一個(gè)定時(shí)器,繼承TimerTask,在復(fù)寫的run()方法里寫具體的業(yè)務(wù)邏輯。第四步,在自己的監(jiān)聽器里復(fù)寫的publicvoidcontextInitialized(ServletContextEventarg0){}這個(gè)方法里調(diào)用定時(shí)器的schedule方法。具體代碼如下:web.xml添加:1《!--用于補(bǔ)償認(rèn)證信息異常的數(shù)據(jù),用來(lái)啟動(dòng)定時(shí)器,20170505--》2《listener》3《listener-class》com.dcits.app.servlet.MyTimerTaskListener《/listener-class》4《/listener》MyTimerTaskListener.javapackagecom.dcits.app.servlet;importjava.util.Calendar;importjava.util.Timer;importjavax.servlet.ServletContextEvent;importjavax.servlet.ServletContextListener;/***@authorWeiyongle*@time2017-5-5下午2:05:32*/publicclassMyTimerTaskListenerimplementsServletContextListener{privateTimertimer=null;@OverridepublicvoidcontextDestroyed(ServletContextEventarg0){timer.cancel();}@OverridepublicvoidcontextInitialized(ServletContextEventarg0){System.out.println(“-----開始啟動(dòng)定時(shí)器------”);CalendartwentyOne=Calendar.getInstance();twentyOne.set(Calendar.HOUR_OF_DAY,23);twentyOne.set(Calendar.MINUTE,0);twentyOne.set(Calendar.SECOND,0);timer=newTimer(true);//第一次是晚上23點(diǎn)執(zhí)行,間隔24小時(shí)執(zhí)行一次timer.schedule(newMyTimerTask(),twentyOne.getTime(),1000*60*60*24);/*System.out.println(“-----開始啟動(dòng)定時(shí)器------”);CalendartwentyOne=Calendar.getInstance();twentyOne.set(Calendar.HOUR_OF_DAY,14);twentyOne.set(Calendar.MINUTE,47);twentyOne.set(Calendar.SECOND,0);timer=newTimer(true);timer.schedule(newMyTimerTask(),twentyOne.getTime(),1000*10);*/}}MyTimerTask.javapackagecom.dcits.app.servlet;importjava.io.IOException;importjava.util.HashMap;importjava.util.Map;importjava.util.TimerTask;importorg.codehaus.jackson.JsonGenerationException;importorg.codehaus.jackson.map.JsonMappingException;/***定時(shí)器,用于補(bǔ)償認(rèn)證的時(shí)候沒(méi)有獲取到正常返回的那些數(shù)據(jù)*@authorWeiyongle*@time2017-5-5下午2:20:12*/publicclassMyTimerTaskextendsTimerTask{privatestaticStringBufferurl=newStringBuffer();@Overridepublicvoidrun(){//生產(chǎn)環(huán)境//url.append(“https://我是具體的ip地址/nmsypt/servlet/webServlet”);//生產(chǎn)環(huán)境url.append(“l(fā)ocalhost:8080/adp/servlet/webServlet”);//本地環(huán)境Map《String,Object》reqMap=newHashMap《String,Object》();//這里的map從數(shù)據(jù)庫(kù)里獲取對(duì)應(yīng)的數(shù)據(jù)不寫死就行了,先獲取map,在寫個(gè)for循環(huán)進(jìn)行循環(huán)就行了reqMap.put(“QYMC”,“丹同學(xué)的公司”);reqMap.put(“NSRSBH”,“158028307441234”);reqMap.put(“SJHM_FR”,);reqMap.put(“YZM”,“123456”);reqMap.put(“CWFZR”,“”);//reqMap.put(“ZJLX_DM_CW”,“”);//reqMap.put(“ZJHM_CW”,“”);//reqMap.put(“ZGRS”,“1234”);reqMap.put(“SQYY”,“”);//reqMap.put(“JRCPBM”,“00002”);reqMap.put(“XYDM”,“1”);reqMap.put(“XZQHDM”,“”);reqMap.put(“QYBM”,“QY17900000647001”);try{CompensateData.CompensateDatas(url.toString(),reqMap);System.out.println(“-----成功補(bǔ)償了一條認(rèn)證信息------”);}catch(JsonGenerationExceptione){e.printStackTrace();}catch(JsonMappingExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}java當(dāng)中的定時(shí)器的4種使用方式對(duì)于開發(fā)游戲項(xiàng)目的同胞來(lái)說(shuō),Timer這個(gè)東西肯定不會(huì)陌生,今天對(duì)以前自己經(jīng)常使用的定時(shí)進(jìn)行了一番小小的總結(jié)!沒(méi)有寫具體實(shí)現(xiàn)的原理,只是列舉出了其中的四種比較常見的使用方法,相對(duì)而言,所以只要按照其所列舉的例子仿照即可!importjava.util.Calendar;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask;publicclassTimeTest{publicstaticvoidmain(String[]args){timer1();//timer2();//timer3();//timer4();}//第一種方法:設(shè)定指定任務(wù)task在指定時(shí)間time執(zhí)行schedule(TimerTasktask,Datetime)publicstaticvoidtimer1(){Timertimer=newTimer();timer.schedule(newTimerTask(){publicvoidrun(){System.out.println(“-------設(shè)定要指定任務(wù)--------”);}},2000);//設(shè)定指定的時(shí)間time,此處為2000毫秒}//第二種方法:設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定延遲peroid的執(zhí)行//schedule(TimerTasktask,longdelay,longperiod)publicstaticvoidtimer2(){Timertimer=newTimer();timer.schedule(newTimerTask(){publicvoidrun(){System.out.println(“-------設(shè)定要指定任務(wù)--------”);}},1000,5000);}//第三種方法:設(shè)定指定任務(wù)task在指定延遲delay后進(jìn)行固定頻率peroid的執(zhí)行。//scheduleAtFixedRate(TimerTasktask,longdelay,longperiod)publicstaticvoidtimer3(){Timertimer=newTimer();timer.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.println(“-------設(shè)定要指定任務(wù)--------”);}},1000,2000);}//第四種方法:安排指定的任務(wù)task在指定的時(shí)間firstTime開始進(jìn)行重復(fù)的固定速率period執(zhí)行.//Timer.scheduleAtFixedRate(TimerTasktask,DatefirstTime,longperiod)publicstaticvoidtimer4(){Calendarcalendar=Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY,12);//控制時(shí)calendar.set(Calendar.MINUTE,0);//控制分calendar.set(Calendar.SECOND,0);//控制秒Datetime=calendar.getTime();//得出執(zhí)行任務(wù)的時(shí)間,此處為今天的12:00:00Timertimer=newTimer();timer.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.println(“-------設(shè)定要指定任務(wù)--------”);}},time,1000*60*60*24);//這里設(shè)定將延時(shí)每天固定執(zhí)行}}Spring定時(shí)器應(yīng)該怎么用呢?在Java中呢,我們總是會(huì)有一些定時(shí)任務(wù),比如說(shuō):發(fā)郵件、短信推送消息;發(fā)公告、更新等等。那么Spring中的定時(shí)器應(yīng)該如何使用呢?接下來(lái)我們就來(lái)說(shuō)說(shuō)Spring定時(shí)器的使用方法。1.我們今天呢,是以springboot項(xiàng)目為基礎(chǔ)進(jìn)行的,大家如果不會(huì)使用Springboot的話可以先收藏一下,明天我會(huì)出一個(gè)Springboot項(xiàng)目的搭建文章。到時(shí)候你可以返回來(lái)再看這篇。因?yàn)閟pringboot實(shí)在是在方便了,用完之后就不想再回去寫配置文件了。。。2.首先呢,我們需要在啟動(dòng)主程序中開啟定時(shí),只需要在主類上增加@EnableScheduling即可,相信大家看字面意思也明白是什么意思啦!3.接下來(lái)就是寫我們的定時(shí)類,那么你就可以在定時(shí)類中完成自己的需求,無(wú)論是發(fā)送郵件、短信;還是公告、更新,他統(tǒng)統(tǒng)可以準(zhǔn)確無(wú)誤的幫你執(zhí)行,如果你有興趣,也可以寫一個(gè)搶購(gòu)物品呀、車票呀什么的腳本。當(dāng)然說(shuō)起來(lái),寫腳本可能python更強(qiáng)一些。4.在以上代碼中呢,我使用@Autowired注入了testSe

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論