applicationContext-quartz.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
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-4.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.2.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.2.xsd">
<!-- 定时删除文件服务器 已解析的pdf文件 -->
<!-- 配置job类 -->
<bean id="decoderPdfJob" class="com.waypolice.common.quartz.DecoderPdfJob"/>
<!-- 配置JobDetail -->
<bean id="jobMethod" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="decoderPdfJob"/>
</property>
<property name="targetMethod">
<value>deleteDecoderPdf</value> <!-- value的值必须与我们定义的job类的方法名一致 -->
</property>
</bean>
<!-- 配置一个trigger -->
<bean id="cronTriggerFactoryBean" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail" ref="jobMethod"></property>
<property name="cronExpression" value="0 0 0 * * ?"></property>
</bean>
<!-- 配置调度框架 -->
<bean id="springJobSchedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronTriggerFactoryBean"/>
</list>
</property>
</bean>
</beans>
java程序
package com.waypolice.common.quartz;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import com.waypolice.manager.service.CerttificateService;
import com.waypolice.manager.utils.FastDfsClient;
import com.waypolice.mapper.handwriting.CerttificateMapperSon;
import com.waypolice.pojo.Certtificate;
/**
* 解码的pdf图片定时每晚1点删除的任务
* @author 宗义朋
*
*/
public class DecoderPdfJob {
@Autowired
public CerttificateService certtificateService;
@Autowired
public CerttificateMapperSon certtificateMapperSon;
@Value("${IMAGE_SERVER_URL}")
public String IMAGE_SERVER_URL;
/**
* 定时执行删除已解码的pdf文件,并修改数据库的状态
*/
public void deleteDecoderPdf(){
List<Certtificate> list = certtificateService.findDecoderPdf();
List<Long> removeList = new ArrayList<Long>();
try {
if(list!=null&&list.size()!=0){
FastDfsClient fastDFSClient1 = new FastDfsClient(
"classpath:resource/client.conf");
for(Certtificate ce : list){
int pdfStatus = 1;
int pngStatus = 1;
if(ce.getCeStrfour()!=null){
pdfStatus = fastDFSClient1.deleteFile(ce.getCeStrfour().replace(IMAGE_SERVER_URL, ""));
}
if(ce.getCeStrfive()!=null){
pngStatus = fastDFSClient1.deleteFile(ce.getCeStrfive().replace(IMAGE_SERVER_URL, ""));
}
if(pdfStatus==0||pngStatus==0){
removeList.add(ce.getCeUkId());
}
}
if(removeList.size()>0){
certtificateMapperSon.updateDecoderPdf(removeList);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}