定时器怎么使用_第1页
定时器怎么使用_第2页
定时器怎么使用_第3页
定时器怎么使用_第4页
定时器怎么使用_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

定时器怎么使用java中定时器的简单使用1.首先肯定是容器一启动就要启动定时器,所以我们可以选择把定时器写在一个监听器里,容器一启动所以监听器也就跟着启动,然后定时器就可以工作了。第一步,把自己写的监听器加到web.xml中;第二步,写一个监听器,实现ServletContextListener接口;第三步,写一个定时器,继承TimerTask,在复写的run()方法里写具体的业务逻辑。第四步,在自己的监听器里复写的publicvoidcontextInitialized(ServletContextEventarg0){}这个方法里调用定时器的schedule方法。具体代码如下:web.xml添加:1《!--用于补偿认证信息异常的数据,用来启动定时器,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(“-----开始启动定时器------”);CalendartwentyOne=Calendar.getInstance();twentyOne.set(Calendar.HOUR_OF_DAY,23);twentyOne.set(Calendar.MINUTE,0);twentyOne.set(Calendar.SECOND,0);timer=newTimer(true);//第一次是晚上23点执行,间隔24小时执行一次timer.schedule(newMyTimerTask(),twentyOne.getTime(),1000*60*60*24);/*System.out.println(“-----开始启动定时器------”);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;/***定时器,用于补偿认证的时候没有获取到正常返回的那些数据*@authorWeiyongle*@time2017-5-5下午2:20:12*/publicclassMyTimerTaskextendsTimerTask{privatestaticStringBufferurl=newStringBuffer();@Overridepublicvoidrun(){//生产环境//url.append(“https://我是具体的ip地址/nmsypt/servlet/webServlet”);//生产环境url.append(“localhost:8080/adp/servlet/webServlet”);//本地环境Map《String,Object》reqMap=newHashMap《String,Object》();//这里的map从数据库里获取对应的数据不写死就行了,先获取map,在写个for循环进行循环就行了reqMap.put(“QYMC”,“丹同学的公司”);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(“-----成功补偿了一条认证信息------”);}catch(JsonGenerationExceptione){e.printStackTrace();}catch(JsonMappingExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}}}java当中的定时器的4种使用方式对于开发游戏项目的同胞来说,Timer这个东西肯定不会陌生,今天对以前自己经常使用的定时进行了一番小小的总结!没有写具体实现的原理,只是列举出了其中的四种比较常见的使用方法,相对而言,所以只要按照其所列举的例子仿照即可!importjava.util.Calendar;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask;publicclassTimeTest{publicstaticvoidmain(String[]args){timer1();//timer2();//timer3();//timer4();}//第一种方法:设定指定任务task在指定时间time执行schedule(TimerTasktask,Datetime)publicstaticvoidtimer1(){Timertimer=newTimer();timer.schedule(newTimerTask(){publicvoidrun(){System.out.println(“-------设定要指定任务--------”);}},2000);//设定指定的时间time,此处为2000毫秒}//第二种方法:设定指定任务task在指定延迟delay后进行固定延迟peroid的执行//schedule(TimerTasktask,longdelay,longperiod)publicstaticvoidtimer2(){Timertimer=newTimer();timer.schedule(newTimerTask(){publicvoidrun(){System.out.println(“-------设定要指定任务--------”);}},1000,5000);}//第三种方法:设定指定任务task在指定延迟delay后进行固定频率peroid的执行。//scheduleAtFixedRate(TimerTasktask,longdelay,longperiod)publicstaticvoidtimer3(){Timertimer=newTimer();timer.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.println(“-------设定要指定任务--------”);}},1000,2000);}//第四种方法:安排指定的任务task在指定的时间firstTime开始进行重复的固定速率period执行.//Timer.scheduleAtFixedRate(TimerTasktask,DatefirstTime,longperiod)publicstaticvoidtimer4(){Calendarcalendar=Calendar.getInstance();calendar.set(Calendar.HOUR_OF_DAY,12);//控制时calendar.set(Calendar.MINUTE,0);//控制分calendar.set(Calendar.SECOND,0);//控制秒Datetime=calendar.getTime();//得出执行任务的时间,此处为今天的12:00:00Timertimer=newTimer();timer.scheduleAtFixedRate(newTimerTask(){publicvoidrun(){System.out.println(“-------设定要指定任务--------”);}},time,1000*60*60*24);//这里设定将延时每天固定执行}}Spring定时器应该怎么用呢?在Java中呢,我们总是会有一些定时任务,比如说:发邮件、短信推送消息;发公告、更新等等。那么Spring中的定时器应该如何使用呢?接下来我们就来说说Spring定时器的使用方法。1.我们今天呢,是以springboot项目为基础进行的,大家如果不会使用Springboot的话可以先收藏一下,明天我会出一个Springboot项目的搭建文章。到时候你可以返回来再看这篇。因为springboot实在是在方便了,用完之后就不想再回去写配置文件了。。。2.首先呢,我们需要在启动主程序中开启定时,只需要在主类上增加@EnableScheduling即可,相信大家看字面意思也明白是什么意思啦!3.接下来就是写我们的定时类,那么你就可以在定时类中完成自己的需求,无论是发送邮件、短信;还是公告、更新,他统统可以准确无误的帮你执行,如果你有兴趣,也可以写一个抢购物品呀、车票呀什么的脚本。当然说起来,写脚本可能python更强一些。4.在以上代码中呢,我使用@Autowired注入了testSe

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论