<filter>
<filter-name>sessionFilter</filter-name>
<filter-class>cn.microvideo.oa.sys.servlet.SessionFilter</filter-class>
</filter>
public class DelFileListener implements ServletContextListener {
private ScheduledExecutorService service;
@Override
public void contextDestroyed(ServletContextEvent arg0) {
System.out.println("停止了!");
service.shutdown();
}
@Override
public void contextInitialized(final ServletContextEvent event) {
service = Executors
.newSingleThreadScheduledExecutor();
service.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
int currentHour=new GregorianCalendar().get(Calendar.HOUR_OF_DAY);
if(currentHour==2){
System.out.println("现在是执行清理任务");
ApplicationContext context = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
IDbMailDao dao=(IDbMailDao) context.getBean("IDbMailDao");
String ctxPath =event.getServletContext().getRealPath(
"/")
+ "upload/";
String [] fileNames=DeleteDirectory.getFileNamesByPath(new File(ctxPath));
for (String string : fileNames) {
int i=dao.queryIsTempDir(string);
if(i==0){
DeleteDirectory.deleteDir(new File(ctxPath+File.separator+string));
}
}
}else{
System.out.println("还没到清除文件点");
}
}
}, 0, 1, TimeUnit.HOURS);
}
}
当然用石英调度是更好的,随便写写