spring定时任务

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) + "]结束!");
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值