java Timer定时任务。每天的某个时刻开启(亲测有效,直接运行)
2017-09-29 14:36
246 查看
这是管理类:
import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; /** * Created by Administrator on 2017/9/29. */ public class TaskManager { /** * 开启任务 */ //默认时间间隔一天 private static long PERIOD_TIME = 24 * 60 * 60 * 1000; Log log = LogFactory.getLog(TaskManager.class); public void startTask(TimerTask task, int dayInterval, int hour, int minute){ PERIOD_TIME = dayInterval * 24 * 60 * 60 * 1000; Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, hour); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); //执行定时任务的时间 Date date=calendar.getTime(); //为了避免若容器启动的时间晚于定时时间,在重启容器的时候会立刻执行该任务 if (date.before(new Date())) { date = this.addDay(date, 1); } Timer timer = new Timer(); //任务在指定的时间开始进行重复的固定延迟执行 timer.schedule(task,date); } // 增加或减少天数 public Date addDay(Date date, int num) { Calendar startDT = Calendar.getInstance(); startDT.setTime(date); startDT.add(Calendar.DAY_OF_MONTH, num); return startDT.getTime(); } }
这是监听:
import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener;/*** Created by Administrator on 2017/9/29.*/public class RankTaskListener implements ServletContextListener {@Overridepublic void contextInitialized(ServletContextEvent servletContextEvent) {System.out.println("开启监听了.2点28准时启动...........");String day="1";String hour="14";String minute="28";new TaskManager().startTask(new RankTask(),Integer.parseInt(day), Integer.parseInt(hour), Integer.parseInt(minute));}@Overridepublic void contextDestroyed(ServletContextEvent servletContextEvent) {}}
这是定时任务:
import java.util.TimerTask;/*** Created by Administrator on 2017/9/29.*/public class RankTask extends TimerTask {@Overridepublic void run() {System.out.println("...............任务执行了.............");}}
web .xml配置监听:
<listener><listener-class>com.mytest.task.RankTaskListener</listener-class></listener>
相关文章推荐
- java Timer 定时每天凌晨1点执行任务
- java定时任务,每天定时执行任务(JDK TimerTask)
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨23点执行任务
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨1点执行任务
- java Timer 定时每天凌晨1点执行任务
- java定时任务,每天定时执行任务(JDK TimerTask)
- java定时任务,每天定时执行任务(JDK TimerTask)
- Java定时多线程任务实现(TimerTask)
- 定时任务:Java中Timer和TimerTask的使用
- 定时任务:Java中Timer和TimerTask的使用
- Java 定时器的使用:每天定时执行任务
- Java基础复习--java.util.Timer定时任务
- 定时任务:Java中Timer和TimerTask的使用
- java定时任务--Timer、TimerTask
- java定时任务调度-Timer(1)
- Java 中Timer和TimerTask 定时器和定时任务使用的例子
- java定时任务Timer和TimerTask使用