浏览 2010 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-29
一、首先是一个作业代码,用于在指定目录删除验证图片: package ep.spring.model.quartz; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.StatefulJob; import java.io.File; import java.io.Serializable; import java.util.Map; /** * 定时清空校验图 * @author fangbiao * */ public class DelCodeCheckJob implements StatefulJob,Serializable{ //所有的成员变量都是瞬时的 private transient String imagePath; private transient File imageFile; private transient Map mapMsg; public DelCodeCheckJob(){} public void execute(JobExecutionContext context) throws JobExecutionException { mapMsg = context.getMergedJobDataMap(); imagePath = System.getenv("tomcat_home").replace('\\', '/')+"/webapps/eppj/images/codeCheck"; imageFile = new File(imagePath); if(imageFile.exists()){ if(imageFile.list().length !=0){ if(imageFile.delete()){ mapMsg.put("messages", "清空校验图成功..."); } }else{ mapMsg.put("messages", "校验图缓存目录是空的,无需清空..."); } } System.out.println("[任务:"+context.getJobDetail().getName()+"]"+mapMsg.get("messages")); } } 二、配置quartz,用于指定作业的时间调度 quartz.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd"> <!-- job --> <!-- 验证图片清空作业 --> <bean id="delImageJob" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass"> <value>ep.spring.model.quartz.DelCodeCheckJob</value> </property> <property name="jobDataAsMap"> <map> <entry key="messages"> <value>delCodeCheckJob 初始化 ...</value> </entry> </map> </property> <!-- (当你需要applicationContext环境时,可以增加该参数) <property name="applicationContextJobDataKey"> <value>applicationContext</value> </property> --></bean> <!-- trigger --> <bean id="delImageTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail"> <ref local="delImageJob"/> </property> <property name="cronExpression"> <!-- 每天3点开始进行一次清理 --> <value>0 0 3 * * ?</value> </property> </bean> </beans> 三、在web.xml加载quartz.xml,由于我是整合spring+jsf环境下开发的,所以我把这个配置放在: <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/datasource.xml,/WEB-INF/applicationContext.xml,/WEB-INF/quartz.xml</param-value> </context-param> OK!如果想要把相关的调度数据存储到数据库怎办?下面提供一个配置,因项目不必须,所以没有多加测试,不过具体可到http://www.opensymphony.com/quartz 参考其相关配置. 以下是一个参考文件:quartzJdbc.properties #配置Scheduler的基本信息 org.quartz.scheduler.instanceName = SpringBookScheduler org.quartz.scheduler.instanceId = AUTO #配置Quartz的线程池 org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 15 org.quartz.threadPool.threadPriority = 5 #配置所采用的JobStore方式 org.quartz.jobStore.misfireThreshold = 60000 org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX org.quartz.jobStore.tablePrefix = QRTZ_ org.quartz.jobStore.useProperties = false #配置Quartz持久化 org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.MSSQLDelegate org.quartz.jobStore.dataSource = epDS org.quartz.datasource.epDS.driver = com.microsoft.jdbc.sqlserver.SQLServerDriver org.quartz.datasource.epDS.URL = jdbc:microsoft:sqlserver://localhost:1433;SelectMethod=cursor;DatabaseName=epDB org.quartz.datasource.epDS.user = sa org.quartz.datasource.epDS.password = 1234 rog.quartz.datasource.epDs.validationQuery = select 1 数据库连接池配置有多种方式,我用的是jtds ,SQLServerDriver真的是有问题,不整了我好久。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |