小编这次要给大家分享的是如何实现Spring监听器和定时任务,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
背景:在原SSM项目中,拟定在每晚的23:59:59执行一个批处理任务。
设计思路:用jdk自带的定时器触发任务执行,设置下次执行间隔为24小时。定时任务由spring的监听器去启动。
jdk版本:1.8.0
上代码
web.xml,添加监听
<listener> <listener-class>com.test.listener.Listener</listener-class> </listener>
添加监听类
import com.test.timmer.TimmerTest; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import java.util.Calendar; import java.util.Timer; public class Listener implements ServletContextListener { public void contextInitialized(ServletContextEvent sce) { System.out.println("启动监听。。。。。。。。。。。。。。。。。"); //定时器 Timer timer = new Timer(); //定时任务对象 TimmerTest task = new TimmerTest(); //指定到23:59:59 Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY,23); calendar.set(Calendar.MINUTE,59); calendar.set(Calendar.SECOND,59); //每天的23:59:59秒执行任务,下次执行延迟时长为24小时 timer.schedule(task, calendar.getTime(), 24*60*60*1000); } public void contextDestroyed(ServletContextEvent sce) { } }
添加定时任务实例,jdk的定时任务类需继承 java.util.TimerTask 抽象类
package com.test.timmer; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimerTask; public class TimmerTest extends TimerTask { public void run() { Date dt = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒"); System.out.println(sdf.format(new Date())+",执行定时任务"); } }
看完这篇关于如何实现Spring监听器和定时任务的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。