日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Timer实现定时任务

發布時間:2024/1/18 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Timer实现定时任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

web.xml配置Listener

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

?

任務類,繼承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("進來啦哈哈哈哈哈哈");} catch (Exception e) {System.out.println("異常了");}}}

?

實現JAVA EE的監聽接口,定時調用任務類:

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{//時間間隔(一天) 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點 calendar.set(Calendar.MINUTE, 1); calendar.set(Calendar.SECOND, 0); Date date=calendar.getTime(); //第一次執行定時任務的時間 //如果第一次執行定時任務的時間 小于當前的時間 //此時要在 第一次執行定時任務的時間加一天,以便此任務在下個時間點執行。如果不加一天,任務會立即執行。 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}// 增加或減少天數 public Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); }}

?

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。