今天在工作中遇到了定时删除某个文件夹的所有内容的任务。
完成这个任务主要有两个点:
1.定时器的实现
2.什么时候执行定时器的任务
定时器的实现主要有4种方式:普通的thread、 TimerTask和Timer搭配、ScheduledExecutorService、quartz四中方式。这里参考了http://blog.csdn.net/haorengoodman/article/details/23281343这篇文章,由于以前用过了quartz这种方式,在这里我选择了ScheduledExecutorService这种方式。
定时任务的触发方式我知道的有三种方式:
1.servlet(通过在web.xml中配置load-on-startup加载)
2.listener
3.spring提供的ScheduledTimerTask和TimerFactoryBean
本文主要采用listener的实现方式,实现了ServletContextListener接口,在应用上下文初始化的时候,触发定时任务。
以下贴出listener类和web.xml中listener的配置:
package com.shinow.hmsw.hminterface.file.timertask;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.concurrent.Executors;
import java.ut