使用定时器五分钟更新一次数据库

项目上需要实现一个功能:在订单状态为进行中时,但是已经归还租借的物品,而且该订单状态的结束时间是现在时间的五分钟前,让项目批量刷新整张表,将订单状态改成已完成

@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版权协议,转载请附上原文出处链接和本声明。