Quartz在SpringSide框架的使用

1.配置一个专门的Quartz配置文件:applicationContext-quartz.xml
<!-- Quartz本地Schduler -->
	<bean id="localQuartzScheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean" lazy-init="false">
		<!-- Triggers集成 -->
		<property name="triggers">
			<list>
				<ref bean="cronTrigger" />
			</list>
		</property>
		<!-- Quartz配置 -->
		<property name="quartzProperties">
			<props>
				<prop key="org.quartz.threadPool.threadCount">5</prop>
			</props>
		</property>
		<!-- 启动时延期3秒开始任务 -->
		<property name="startupDelay" value="3" />
	</bean>

	<!-- Cron式Trigger定义 -->
	<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail" ref="cronJobDetail" />
		<!-- 每天凌晨 2 点执行一次 -->
		<property name="cronExpression" value="0 0 2 * * ?" />
	</bean>

	<!-- Cron JobDetajil, 基于MethodInvokingJobDetailFactoryBean调用普通Spring Bean -->
	<bean id="cronJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="cronJob" />
		<property name="targetMethod" value="execute" />
		<!-- 同一任务在前一次执行未完成而Trigger时间又到时是否并发开始新的执行, 默认为true. -->
		<property name="concurrent" value="false" />
	</bean>

	<!-- 被Cron执行的普通Spring Bean -->
	<bean id="cronJob" class="com.basepackage.quartz.ExpiresVideoCheck" />

对应的设置网上有,这里不复述了,参照这里的格式改改就好

2.将这个配置文件加载到web.xml里面
<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔 此参数用于后面的Spring Context 
		Loader -->
	<context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath*:/applicationContext.xml,classpath*:/applicationContext-quartz.xml</param-value>
	</context-param>


3.编写你的Quartz类
public class ExpiresVideoCheck {
	public void execute() {
		//System.out.println("quartz-------");
	}

}

猜你喜欢

转载自kevinpan45.iteye.com/blog/1336745