项目上需要实现一个功能:在订单状态为进行中时,但是已经归还租借的物品,而且该订单状态的结束时间是现在时间的五分钟前,让项目批量刷新整张表,将订单状态改成已完成
@Configuration //1.主要用于标记配置类,兼备Component的效果。
@EnableScheduling // 2.开启定时任务
public class Task {
private static final Logger log = BatteryCabinetLoggerFactory.getServerInfoLogger(Task.class);
@Autowired
LeaseComboMapper leaseComboMapper;
//3.添加定时任务,每五分钟更新一次
@Scheduled(cron = "0 */5 * * * ?")
private void batchUpdateTasks() {
Integer i=leaseComboMapper.batchUpdate();
log.info("定时结束套餐 "+ i +" "+DateUtil.formatAsDatetime(new Date()));
}
}
<update id="batchUpdate">
UPDATE lease_combo
SET STATUS=3,actual_end_time=now()
WHERE TIMESTAMPDIFF(MINUTE,end_time,NOW())>5
AND has_battery=0 AND STATUS=2
</update>
上面是最终使用的方法
版权声明:本文为kalifor原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。