application-task:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<!-- 定时任务 -->
<beans>
<bean id="submitToPollutionNationalLibrary"
class="com.task.Service.SubmitToPollutionNationalLibraryTask"
singleton="true">
<property name="taskName">
<value>Submit To Pollution Nation Task</value>
</property>
<property name="taskFlag"><value>submitToPollutionNationalLibraryFlag</value></property>
<!-- 上报限制时间开始 -->
<property name="hourStart">
<value>0</value>
</property>
<!-- 上报限制时间结束 -->
<property name="hourEnd">
<value>24</value>
</property>
<property name="intervalTime">
<value>60000</value><!-- 1分钟上报一次数据 -->
</property>
<property name="timeout"><!-- 超时时间:30分钟 -->
<value>1800000</value>
</property>
<property name="queueSampleService"><ref bean="queueSampleService"/></property>
<property name="submitToNation2Service"><ref bean="submitToNation2Service"/></property>
<property name="sampleInfoService"><ref bean="sampleInfoService" /></property>
<property name="caseInfoService"><ref bean="caseInfoService" /></property>
<property name="convert2NationalSubmitDatas"><ref bean="convert2NationalSubmitDatas" /></property>
<property name="sampleDnaGeneService"><ref bean="sampleDnaGeneService" /></property>
<property name="logFailureService"><ref bean="logFailureService" /></property>
<property name="keyGeneratorService"><ref bean="keyGeneratorService" /></property>
<property name="queueDetailService"><ref bean="queueDetailService"/></property>
</bean>
<bean id="UpdateToPollutionNationStatusTask"
class="com.task.Service.UpdateToPollutionNationStatusTask"
singleton="true">
<property name="taskName">
<value>Update To Pollution Nation Status Task</value>
</property>
<property name="taskFlag"><value>updateToPollutionNationStatusTaskFlag</value></property>
<!-- 上报限制时间开始 -->
<property name="hourStart">
<value>0</value>
</property>
<!-- 上报限制时间结束 -->
<property name="hourEnd">
<value>24</value>
</property>
<property name="intervalTime">
<value>60000</value><!-- 1分钟上报一次数据 -->
</property>
<property name="timeout"><!-- 超时时间:30分钟 -->
<value>1800000</value>
</property>
<property name="keyGeneratorService"><ref bean="keyGeneratorService" /></property>
<property name="logFailureService"><ref bean="logFailureService" /></property>
<property name="queueSampleService"><ref bean="queueSampleService"/></property>
<property name="sampleInfoService"><ref bean="sampleInfoService" /></property>
<property name="queueDetailService"><ref bean="queueDetailService" /></property>
</bean>
<bean id="submitToPollutionNationTaskStartup" class="com.task.TaskStartup">
<property name="taskList">
<list>
<ref local="submitToPollutionNationalLibrary" />
<ref local="UpdateToPollutionNationStatusTask" />
</list>
</property>
</bean>
<bean id="submitToPollutionNationTask"
class="org.springframework.scheduling.timer.ScheduledTimerTask">
<property name="delay">
<value>30000</value>
</property>
<property name="period">
<value>10000</value><!-- 5分钟 -->
</property>
<property name="timerTask">
<ref local="submitToPollutionNationTaskStartup" />
</property>
</bean>
<!-- Factory -->
<bean id="timerFactory"
class="org.springframework.scheduling.timer.TimerFactoryBean">
<property name="scheduledTimerTasks">
<list>
<ref local="submitToPollutionNationTask" />
</list>
</property>
</bean>
</beans>
TaskStartup.java
public class TaskStartup extends TimerTask {
List taskList;
public void run() {
if (taskList != null) {
for (int i = 0; i < taskList.size(); i++) {
BaseTask bt = (BaseTask) taskList.get(i);
bt.requestStart();
}
}
cancel();
}
}
BaseTask.java
public abstract class BaseTask implements Runnable {
public boolean requestStart() {
//查看任务执行的必要性?
if (!getTaskExecuteNecessity()) {
log.info("[" + taskName + "]:没有执行的必要性!");
return false;
}
log.info(taskName + " starting……");
//the old thread is not end
if (thread.isAlive() || status) {
return false;
}
thread = new Thread(this);
thread.start();
log.info(taskName + " started!");
return true;
}
}
SubmitToPollutionNationalLibraryTask.java
public class SubmitToPollutionNationalLibraryTask extends BaseTask implements TaskActivity {
protected void doTask() throws Exception {
this.activeTime = System.currentTimeMillis();
if (!isInSettedTime()) {
return;
}
errorBarcodeList = new ArrayList<Map<String, Object>>();
submitCrimeAndMopai();
System.out.println("-####定时任务[STNL2" + (submitIndex) + "]结束!");
logger.info("####定时任务[---STNL2---" + (++submitIndex) + "]结束!");
}
}