定时器最好单独写在一个类里,这个类专门就是定时器管理
我这边用的是注解:在类的上面注解@Component("Timer") 表名这个类是定时器,这个类里面可以写N个定时器,注解是用 @Scheduled(cron="0 0/10 * * * ?") 当然cron是你自己定义的时间,后面我会抽点时间说说这个cron表达式。demo如下:
package com.timer;
import java.util.Date;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.menu.zhai.order.busi.OrderTimerService;
/**
*
*
* 类描述:Spring定时任务管理
* 项目名称:zhaiqq
* 类名称:Timer
* 创建人:yt
* 创建时间:2015-5-11 下午7:19:00
* 修改人:yt
* @version
*
*/
@Component("Timer")
public class Timer{
@Autowired
private OrderTimerService orderTimeService;
/**
*
* 方法描述:推送下单信息给大屏
* 创建人:yt
* 创建时间:2015-5-11 下午7:49:42
*/
@Scheduled(cron = "0 0/10 * * * ?")
public void newOrderInfoTimer() {
//推送下单信息给大屏
this.orderTimeService.getNewOrderInfo();
}
/**
*
* 方法描述:定时执行订单超过24小时,自动将订单表的状态改为取消
* 创建人:yt
* 创建时间:2015-5-26 下午7:51:26
* 修改人:yt
* 修改内容:将24个小时改为1个小时
*/
@Scheduled(cron="0 0/10 * * * ?")
public void AutoModifyOrderStatusToCancel() {
//调用定时执行订单超过1小时,自动将订单表的状态改为取消service
this.orderTimeService.AutoModifyOrderStatusToCancel();
}
}