1、自定义一个定时任务类
以下为包结构
2、配置spring.xml文件 我这里采用注解的方式配置定时任务
<!-- 扫描包 这个包就是你自定义的一个定时任务类-->
<context:component-scan base-package="com.qrq.cron"></context:component-scan>
<!-- 开启注解的定时任务-->
<task:annotation-driven/>
3、使用注解配置定时任务方法
ps:我这里执行的是一个定时发送消息的任务
@Component
public class Cron {
private Logger logger=Logger.getLogger(Cron.class);
@Autowired
private SendMsgDao sendMsgDao;
//每半小时执行一次
@Scheduled(cron = "0 0/30 * * * ?")
public void stratCron(){
logger.info("进入定时任务");
Date date = new Date();
// 获取所有没有发送的信息
List<SendMsgBean> stateIsZero = sendMsgDao.getStateIsZero(0);
// 判断当前时间是否为小于 指定的时间 如果小于就立即执行
for (SendMsgBean sendMsgBean : stateIsZero) {
// 表示当前时间大于指定时间 就将这个未发送的信息状态改为已经发送
if(date.getTime()>sendMsgBean.getSendTime().getTime()){
sendMsgDao.updateSendState(1, sendMsgBean.getId());
}
}
}
}