spring 定时服务调度quartz(三)

本文介绍了Spring框架中Quartz的CronTriggerBean配置方法及其灵活性。通过实例演示了如何使用cronExpression精确控制任务调度的时间,包括每分钟的前30秒等复杂场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上面讲到的服务bean的两种不同实现方式,触发方法就用了spring默认提供的org.springframework.scheduling.quartz.SimpleTriggerBean,在很多时候,这种粗糙的触发是满足不了系统的开发的需求。下面来介绍另一种更灵活的触发方式org.springframework.scheduling.quartz.CronTriggerBean。 配置cronExpression由7部分组成(中间用空格隔开):秒 分 时 日 月 周 年,每一部分都可以精确的指定,也可以是范围,也是可指定是那几个数字,如:1,3,4,5  1-3  4 * * ? *,这个表达式的含义为:每天4时的第1到3分钟内,每分钟内的1,3,4,5执行指定的定时服务。在这里可以看到,定时服务执行了4×3=12次。?表示互斥

把上一个解发器改成CornTriggerBean:

 

<bean id="logjob2" class="quartz2.LogJob1"></bean>
    
<bean id="miJobDetail"
        class
="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
        
<property name="targetObject">
            
<ref bean="logjob2" />
        
</property>
        
<property name="targetMethod">
            
<value>log</value>
        
</property>
    
</bean>
    
<bean id="trigger2"
        class
="org.springframework.scheduling.quartz.SimpleTriggerBean">
        
<property name="jobDetail">
            
<ref bean="miJobDetail" />
        
</property>
        
<property name="startDelay">
            
<value>0</value>
        
</property>
        
<property name="repeatInterval">
            
<value>3000</value>
        
</property>
        
<property name="repeatCount">
            
<value>0</value>
        
</property>
    
</bean>
    
    
<bean id="corn1" class="org.springframework.scheduling.quartz.CronTriggerBean">
    
<property name="jobDetail">
    
<ref bean="miJobDetail"/>
    
</property>
    
<property name="cronExpression">
    
<value>0-30 * *  * * ? *</value>
    
</property>
    
</bean>

    
<bean id="sfb2"
        class
="org.springframework.scheduling.quartz.SchedulerFactoryBean">
        
<property name="triggers">
            
<list>
                
<ref bean="trigger2" />
                
<ref bean="corn1"/>
            
</list>
        
</property>
    
</bean>

spring配置文件装载时,就会执行2个触发器,一个是SimpleTriggerBean,另一个就是CornTriggerBean。在这个corntrigger中指定的含义为每分钟的前30秒执行这个定时服务

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值