Quartz集成Spring框架

1. 引入maven需要的包

		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz</artifactId>
			<version>2.2.1</version>
		</dependency>
		<dependency>
			<groupId>org.quartz-scheduler</groupId>
			<artifactId>quartz-jobs</artifactId>
			<version>2.2.1</version>
		</dependency>

2. 创建配置文件

quartz.properties

    org.quartz.scheduler.instanceName = MyScheduler  
    org.quartz.threadPool.threadCount = 3  
    org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore  

3. 创建Job

import static org.junit.Assert.assertEquals;

import java.util.List;
import java.util.ResourceBundle;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service;


/**
 * Class Description
 *
 * @author Luxiaoshuai
 * @version
 * @date 2015年8月25日 下午1:59:39
 * @since
 */
public class UnfrozenJob {
    private static final Logger logger = LoggerFactory.getLogger(UnfrozenJob.class);

    /**
     * 定时任务
     * 
     * @param arg0
     * @throws JobExecutionException
     */
    public void execute() throws JobExecutionException {

        logger.info("-----任务执行开始------");
       
        logger.info("-----任务执行结束------");
    }

}

4. 配置Spring

    <!-- 让spring管理quartz -->  
    <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
		<property name="triggers">
		<list>
			<ref bean="simpleTrigger"/>
		</list>
		</property>
	</bean>
    <!-- 简单的触发器 -->
	<bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean">
		<property name="jobDetail" ref="jobDetail"/>
		<!-- 启动延迟10秒 -->
		<property name="startDelay" value="0"/>
		<!-- 每50秒执行一次任务 -->
		<property name="repeatInterval" value="10000"/>
	</bean>
    <!-- Job任务设定 -->  
    <bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject" ref="unfrozenJob"/>
		<property name="targetMethod" value="execute"/>
		<!-- 对于相同的JobDetail,当指定多个Trigger时, 很可能第一个job完成之前,第二个job就开始了。指定concurrent设为false,多个job不会并发运行,第二个job将会被推迟。  -->
		<property name="concurrent" value="false"/>
	</bean>
	<!-- 注册Job -->
	<bean id="unfrozenJob" class="com.xxx.xxx.acc.jobs.UnfrozenJob"/>

5. 参考文档

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/     (33.6 Using the Quartz Scheduler)

http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/

复杂点的触发器可以参照:

http://www.quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/crontrigger

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值