日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

Timer实现定时任务

發(fā)布時(shí)間:2024/1/18 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Timer实现定时任务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

web.xml配置Listener

<listener><listener-class>com.prison.controller.TimerManager</listener-class></listener>

?

任務(wù)類,繼承TimerTask類:

package com.prison.util;import java.util.TimerTask;import com.prison.service.UserService;public class Task extends TimerTask{private UserService userService;public Task(UserService userService){this.userService = userService;}public Task(){super();}@Overridepublic void run() {try {System.out.println("進(jìn)來啦哈哈哈哈哈哈");} catch (Exception e) {System.out.println("異常了");}}}

?

實(shí)現(xiàn)JAVA EE的監(jiān)聽接口,定時(shí)調(diào)用任務(wù)類:

package com.prison.controller;import java.util.Calendar; import java.util.Date; import java.util.Timer;import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.support.WebApplicationContextUtils;import com.prison.service.UserService; import com.prison.util.Task;@Controller @RequestMapping(value="/Timer") public class TimerManager implements ServletContextListener{//時(shí)間間隔(一天) private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;Timer timer = null;@Overridepublic void contextInitialized(ServletContextEvent sce) {Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, 11); //凌晨1點(diǎn) calendar.set(Calendar.MINUTE, 1); calendar.set(Calendar.SECOND, 0); Date date=calendar.getTime(); //第一次執(zhí)行定時(shí)任務(wù)的時(shí)間 //如果第一次執(zhí)行定時(shí)任務(wù)的時(shí)間 小于當(dāng)前的時(shí)間 //此時(shí)要在 第一次執(zhí)行定時(shí)任務(wù)的時(shí)間加一天,以便此任務(wù)在下個(gè)時(shí)間點(diǎn)執(zhí)行。如果不加一天,任務(wù)會(huì)立即執(zhí)行。 if (date.before(new Date())) { date = this.addDay(date, 1); }UserService userService = WebApplicationContextUtils.getWebApplicationContext(sce.getServletContext()).getBean(UserService.class);timer = new Timer(true);timer.schedule(new Task(userService), date, PERIOD_DAY);}@Overridepublic void contextDestroyed(ServletContextEvent arg0) {// TODO Auto-generated method stub}// 增加或減少天數(shù) public Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); }}

?

總結(jié)

以上是生活随笔為你收集整理的Timer实现定时任务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。