spring @Scheduled注解执行定时任务

Java代码    收藏代码


spring @Scheduled注解方式配置定时器  

在sping配置文件中: 

配置注解扫描: 

<!-- 配置注解扫描 -->  
<context:annotation-config/>  
<context:component-scan base-package="demo.test" />  
  
<!--配置sping定时器开关 -->  
<task:annotation-driven/>  
  
    <!-- Spring定时器注解开关(可以不添加) -->    
   
    <!-- 此处对于定时时间的配置会被注解中的时间配置覆盖,因此,以注解配置为准 -->    
    <task:scheduled-tasks scheduler="myScheduler">    
        <task:scheduled ref="scheduledTaskManager" method="autoCardCalculate" cron="1/5 * * * * *"/>    
    </task:scheduled-tasks>    
    <task:scheduler id="myScheduler" pool-size="10"/>    

执行任务的POJO类如下:  

package com.demo.schedule;  
  
import org.apache.log4j.Logger;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.scheduling.annotation.Scheduled;  
import org.springframework.stereotype.Component;  
import java.util.Date;  
/** 
 * Created with IntelliJ IDEA. 
 * Author:  
 * Date: 2013-10-09 14:39 
 * Function: Spring定时任务管理 
 */  
@Component("scheduledTaskManager")  
public class ScheduledTaskManager {  
    /** 
     * cron表达式:* * * * * *(共6位,使用空格隔开,具体如下) 
     * cron表达式:*(秒0-59) *(分钟0-59) *(小时0-23) *(日期1-31) *(月份1-12或是JAN-DEC) *(星期1-7或是SUN-SAT) 
     */  
  
    /** 
     * 定时卡点计算。每天凌晨 02:00 执行一次 
     */  
    @Scheduled(cron = "0 0 2 * * *")  
    public void autoCardCalculate() {  
        System.out.println("定时卡点计算... " + new Date());  
    }  
  
    /** 
     * 心跳更新。启动时执行一次,之后每隔1分钟执行一次 
     */  
    @Scheduled(fixedRate = 1000*60*1)  
    public void heartbeat() {  
        System.out.println("心跳更新... " + new Date());  
    }  
  
    /** 
     * 卡点持久化。启动时执行一次,之后每隔2分钟执行一次 
     */  
    @Scheduled(fixedRate = 1000*60*2)  
    public void persistRecord() {  
        System.out.println("卡点持久化... " + new Date());  
    }  
}  


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值