Quartz定时器的使用小结 (QuartzJobBean的使用)

在项目开发中经常会使用到定时器的功能,比如定时生成报告、发送邮件、定时处理账务等等.项目中Quartz集成spring的方式是最为常用的,即QuartzJobBean的使用.
涉及关键类有三个:


1、调度工作类:org.springframework.scheduling.quartz.JobDetailFactoryBean,该对象通过jobClass属性指定调度工作类(做什么);


2、调度触发器:org.springframework.scheduling.quartz.CronTriggerFactoryBean,该对象通过jobDetail属性指定工作类,通过

cronExpression属性指定调度具体的时间及频率(什么时候做);


3、调度工厂类:org.springframework.scheduling.quartz.SchedulerFactoryBean,该对象通过triggers属性指定单个或多个触发器(调度安排)。

实例:

1.定义工作类,集成QuartzJobBean
public class MyJob extends QuartzJobBean {
 
    private static int i = 0;
 
    //JobDetailBean通过jobDataAsMap注入此属性值,指定当服务器启动后过多少秒钟首次调用工作类
       
    //需要调度的任务
    
    protected void executeInternal(JobExecutionContext context)
            
    throws JobExecutionException {
        
        System.out.println("QuartzJobBean-调度" + ++i + "进行中...");
    
    }
 

}

2.配置文件applicationContext.xml(也可以单独写一个配置文件,专门写quartz的配置,和其它分开.如:applicationContext-quartz.xml)
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
    
<!-- JobDetailFactoryBean1、工作类配置 -->
     
<bean name="myjob" class="org.springframework.scheduling.quartz.JobDetailFactoryBean">
        
 <property name="jobClass" value="com.test.job.MyJob" />
              
</bean>
     
<!-- CronTriggerFactoryBean 2、触发器配置-->
     
<bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerFatoryBean">
         
 <!-- 注入1步骤中的工作类 -->
    
 <property name="jobDetail" ref="myJob" />    
 <!-- 每隔5秒调度一次 -->
        
 <property name="cronExpression" value="0/5 * * * * ?" />
    
</bean>
    
<!-- SchedulerFactoryBean 3、配置调度工厂 -->
     
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
         
  <property name="triggers">
             
    <list>
                 
      <ref bean="cronTrigger" /><!-- 注入2中触发器-->
             
   </list>
         
  </property>
    
</bean>

</beans>

3.简单测试
public class ScheduleTest {
 
    
    public static void main(String[] args) {
        
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
// 加载配置文件.    
    }

}


4.小结
在使用Quartz的时候,关键就是工作类的定义和配置文件几个关键类的引用关系.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值