定时器最好单独写在一个类里,这个类专门就是定时器管理
我这边用的是注解:在类的上面注解@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(); } }