package com.util.quartz;
import java.io.File;
import java.io.IOException;
import java.util.Map;
import javax.servlet.ServletContext;
import org.apache.commons.io.FileUtils;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class DeleteTempJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
// TODO Auto-generated method stub
// 获得jobDetail传过来的参数
Map<String, Object> map = context.getJobDetail().getJobDataMap();
ServletContext servletContext = (ServletContext) map.get("servletContext");
String reportTemplatePath = servletContext.getRealPath("/resource") + System.getProperty("file.separator");
reportTemplatePath = reportTemplatePath.replace('\\', '/');
String dir = reportTemplatePath.substring(0, reportTemplatePath.indexOf("/resource")) + "/resource/expertTemp/";
File file = new File(dir);
try {
if (file.exists() && file.isDirectory()) {
// Cleans a directory without deleting it.
FileUtils.cleanDirectory(file);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
----------------------------------------------------------------------
package com.util.quartz;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.TriggerUtils;
@SuppressWarnings("deprecation")
public class QuartzTrigger extends org.quartz.ee.servlet.QuartzInitializerServlet {
private static final long serialVersionUID = 1L;
/**
* 初始化
*
* @param ServletConfig cfg
* @return
*/
public void init(ServletConfig cfg) throws javax.servlet.ServletException {
super.init(cfg);
run(cfg);
}
/**
* 创建一个调度器<code>Scheduler<code>的实例。
* 实例化一个监控定制报表表的线程,并启动该线程。
*
* @param ServletConfig cfg
* @return
*/
public void run(ServletConfig cfg) {
ServletContext servletContext = cfg.getServletContext();
SchedulerFactory factory = (SchedulerFactory) cfg.getServletContext().getAttribute(QUARTZ_FACTORY_KEY);
Scheduler sched;
try {
sched = factory.getScheduler();
sched.start();
JobDetail jobDetail = new JobDetail("deleteTempFile", Scheduler.DEFAULT_GROUP, DeleteTempJob.class);
// 将ServletContext对象放到map中,然后从job中取出来,从而取得路径
Map<String, Object> map = new HashMap<String, Object>();
map.put("servletContext", servletContext);
JobDataMap dateMap = new JobDataMap(map);
jobDetail.setJobDataMap(dateMap);
// fire at the first day 02:01 in every month, start right now
Trigger trigger = TriggerUtils.makeDailyTrigger("deleteTempFile", 02, 01);
sched.scheduleJob(jobDetail, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
-------------------------------------------------------------------
<servlet <description>Quartz定时器,定时清理指定文件夹的临时文件</description>
<servlet-name>DeleteTempJobServlet</servlet-name>
<display-name>DeleteTempJobServlet</display-name>
<servlet-class>com...util.quartz.QuartzTrigger</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
==============================================================================================================
发现QuartzInitializerServlet 已过时,解决重新写了run方法,init方法去掉
public void run(ServletConfig cfg) {
ServletContext servletContext = cfg.getServletContext();
Scheduler scheduler;
try {
scheduler = StdSchedulerFactory.getDefaultScheduler();
scheduler.start();
JobDetail jobDetail = new JobDetail("deleteTempFile", Scheduler.DEFAULT_GROUP, DeleteTempJob.class);
// 将ServletContext对象放到map中,然后从job中取出来,从而取得路径
Map<String, Object> map = new HashMap<String, Object>();
map.put("servletContext", servletContext);
JobDataMap dateMap = new JobDataMap(map);
jobDetail.setJobDataMap(dateMap);
// fire at the first day 02:01 in every month, start right now
Trigger trigger = TriggerUtils.makeDailyTrigger("deleteTempFile", 02, 01);
scheduler.scheduleJob(jobDetail, trigger);
} catch (SchedulerException e) {
e.printStackTrace();
}
}
分享到:
相关推荐
有些第三方软件如CCleaner也提供了定时清理功能,可一键清理临时文件、系统垃圾等。 总结,定时删除文件是一个实用的IT技能,涉及到操作系统的基础知识,包括批处理、shell脚本、任务计划程序和cron等。理解并熟练...
在IT领域,定时清理文件夹下的文件或文件夹是一个常见的需求,特别是在系统维护、日志管理、临时数据处理等场景中。本主题将深入探讨如何使用C#编程语言实现这样的功能,并结合定时任务来自动执行删除操作。 首先,...
2. **定时删除文件**:这是基于预设时间规则自动清理文件的机制。这种功能可以防止不必要的文件占用过多磁盘空间,特别是对于那些临时或过期的数据,如数据库备份。在本例中,如果一个文件的创建时间超过当前时间5...
- 临时文件管理:在服务器上自动清理不再使用的临时文件。 - 数据备份策略:在数据备份后,自动删除超过保留期限的旧备份。 综上所述,这个"定时删除指定目录下指定文件类型的文件 源码"是一个实用的工具,它结合...
这样可以确保不再需要的临时文件、日志文件等不会积累过多,占用宝贵的磁盘空间。 2. **自定义清理目标**:用户可以指定多个文件夹进行清理,如临时文件夹、日志文件夹或任何其他需要定期清理的共享文件夹。这适用...
用户可以根据自己的需求选择删除哪些文件,或者设置定时清理任务,让工具定期自动执行清理工作,确保硬盘始终保持最佳状态。 在进行文件删除时,IFileDelete会遵循一定的安全策略,避免误删重要文件。例如,它会...
3. 操作模式:可能包括手动清理和定时清理两种模式,定时清理可以帮助用户定期维护开发环境。 4. 其他设置:如清理前是否提示确认,日志记录等。 使用该工具时,首先运行 VClear.exe,然后根据提示或预设配置进行...
2. **使用系统工具**:许多操作系统提供了内置的磁盘清理工具,如Windows的"磁盘清理"功能,它可以自动识别并删除无用的临时文件。 3. **第三方软件**:市场上有许多免费和付费的系统优化软件,如CCleaner,能够...
"定时垃圾文件自动删除工具"如其名,是专门设计用来定期自动清理系统垃圾的软件。这类工具通常具有智能化的文件分析系统,能夜识别出哪些文件是可以安全删除的,哪些是需要保留的。而"autoclea.exe"则是这类工具中的...
微信、企业微信、系统临时文件temp清理批处理,有效释放C盘空间. 温馨提示:微信缓存内有重要数据者慎用!
在C#编程中,定时删除带日期的文件是一项常见的任务,尤其在日志管理、临时文件清理等场景中。为了实现这一功能,我们需要结合使用文件系统操作和定时任务。以下是一份详细的步骤和知识点解析: 1. **文件系统操作*...
文件清理是指通过删除不必要的文件,如临时文件、日志文件、系统缓存等,来释放硬盘空间,提高系统性能。这些无用文件长时间累积会占用大量存储资源,可能导致系统运行缓慢,甚至影响到软件的正常运行和更新。 ...
总之,定时删除文件夹软件是管理磁盘空间的有效工具,通过智能化的定时清理,不仅可以优化存储,还能提高系统的整体效率。合理使用此类软件,可以让我们在享受数字化生活的同时,不必担忧存储空间的问题。
这对于定期清理日志文件、临时文件或其他临时数据非常有用。 2. **配置文件**:配置文件`config.ini`是控制工具行为的关键。用户可以通过编辑此文件来设定要删除的文件目录(dirs)、删除依据(deltype)、保留天数...
5. **定期任务**:用户可以设置定时清理任务,自动化执行清理工作,避免手动操作的繁琐。 6. **直观界面**:用户友好的界面设计,使得操作简单易懂,无需专业知识即可轻松上手。 7. **兼容性广泛**:该工具支持...
《Delphi临时文件清理工具——Clean_CompileFile详解》 在软件开发过程中,尤其是使用Delphi这样的集成开发环境(IDE)时,会产生大量的临时文件。这些文件包括编译过程中的中间文件、备份文件、库文件等,它们对于...
这样的解决方案对于需要定期清理日志、备份或其他临时文件的系统非常实用,同时通过log4net提供了一定的审计和故障排查能力。通过理解和应用这些知识点,开发者可以构建出高效且可靠的文件管理系统。
同时,对于学生做毕业设计或小团队开发项目,这样的实例也是一个很好的起点,可以在此基础上进行二次开发,例如增加定时清理、文件备份等功能,以满足不同的需求。通过深入研究和实践,不仅能掌握易语言的基本语法,...
这对于自动化日常任务特别有用,比如定时清理临时文件、同步文件夹或者运行数据库维护脚本。 3. **高级设置**:除了基本设置,高级选项可能包括任务的重复频率、持续时间、依赖关系以及是否在用户登录时运行等。...