1.定时器:
定时器就是在一个类中写一个方法(这个方法就是每隔好久要去处理的事情),之后配置读取这个类的中的方法每隔多久去读取。
https://www.cnblogs.com/itjcw/p/5977952.html
1.类
package com.qfkj.modules.cbes.timer;
import java.util.List;
import org.apache.log4j.Logger;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
import com.qfkj.modules.cbes.entity.FaDecl;
import com.qfkj.modules.cbes.service.FaDeclService;
import com.thinkgem.jeesite.common.utils.SpringContextHolder;
/**
* 定时器
* @author DerekWang
*/
public class SendDeclTimer extends QuartzJobBean {
private static Logger logger = Logger.getLogger(CbesTimer.class);
private FaDeclService faDeclService = SpringContextHolder.getBean("faDeclService");
/**
* 处理状态为操作中的申报单
*/
public void sendFaDecl() {
int count = 0;
long startTimeLong=System.currentTimeMillis();
logger.info("--------------- 处理状态为操作中的申报单 --------------------");
List<FaDecl> faDeclList = faDeclService.findOptStatusList();
String handleResult = "";
for(FaDecl faDecl : faDeclList){
handleResult = faDeclService.handleSendFaDecl(faDecl);
if ("success".equals(handleResult)) {
count++;
}
}
long endTimeLong=System.currentTimeMillis();
logger.info("本次共处理【" + count + "】申报单,耗时:"+(endTimeLong-startTimeLong)+" 毫秒!");
logger.info("--------------- 处理状态为操作中的申报单 --------------------");
}
@Override
protected void executeInternal(JobExecutionContext arg0) throws JobExecutionException {
}
}
2.配置:spring-context.xml
<bean id="sendDeclTimer" class="com.qfkj.modules.cbes.timer.SendDeclTimer" />
<!-- 定时器配置:发送状态为操作中的申报单-->
<bean id="sendDeclXmlJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject" ref="sendDeclTimer" />
<property name="targetMethod" value="sendFaDecl" />
<!--将并发设置为false-->
<property name="concurrent" value="false" />
</bean>
<bean id="sendDeclXmlTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
<property name="jobDetail" ref="sendDeclXmlJobDetail" />
<!-- 程序启动30秒后执行 -->
<property name="startDelay" value="30000" />
<!-- 每5分钟执行一次 -->
<property name="repeatInterval" value="300000" />
</bean>
<!-- 总管理类如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false" >
<property name="triggers">
<list>
<!--作业调度器,list下可加入其他的调度器-->
<ref bean="handleReceiptTrigger" />
<ref bean="sendDeclXmlTrigger" />
<ref bean="genDeclTrigger" />
</list>
</property>
</bean>
2.java实现文件变化监控
主要是对文件监听器:FileListener.java的修改
https://www.cnblogs.com/Mr-kevin/p/5784443.html