Spring Task

本文介绍了如何在Spring框架中使用SpringTask进行定时任务调度,包括如何配置@EnableScheduling开启定时,创建自定义任务类并设置Cron表达式,以及实例化如购物车超时清理这样的业务逻辑。
摘要由CSDN通过智能技术生成

一、Spring Task基本使用

        Spring Task是Spring框架中的一个任务调度工具,可以设置相应的时间来执行你想实现的业务。

1、配置@EnableScheduling开启定时任务。

@EnableScheduling  //开启任务调度,使用SpringTask
public class MovieApplication {
        。。。
}

2、创建自己所需要的定时任务类

@Component //加入Spring容器
@Slf4j
public class MyTask {
    //定时任务 每隔5秒触发一次
    @Scheduled(cron = "0/5 * * * * ?")
    public void executeTask(){
        log.info("定时任务开始执行:{}",new Date());
        System.out.println("执行任务"+LocalDateTime.now());
        System.out.println(LocalDateTime.now().isBefore(LocalDateTime.now().plusMinutes(1)));
    }
}

3.Scheduled(cron=" * * * * * ")

        可以根据在线Cron表达式生成器 (qqe2.com)来进行设置每过几分钟,几小时或者哪一天几点等等来设置所需要的业务

4、然后就可以在方法中设置自己所需要的业务

例    这个业务是商品在购物车中存在一天没付款后自动清除,系统设置每小时检查一次(当然也可以根据自己的需求来设置自己想要的)

@Component
@Slf4j
public class ShoppingCartsTask {
    @Autowired
    private ShoppingcartsMapper shoppingcartsMapper;
    @Autowired
    private ShoppingcartsService shoppingcartsService;
    @Scheduled(cron = "0 0 0/1 * * ?")//每小时触发一次,购物车中物品超过24小时为付款,直接清除
    public void processTimeoutShoppingCart() {
        log.info("定时处理超时购物车:{}", LocalDateTime.now());
        LambdaQueryWrapper<Shoppingcarts> lambdaQueryWrapper = new LambdaQueryWrapper<>();
        List<Shoppingcarts> shoppingcarts = shoppingcartsMapper.selectList(lambdaQueryWrapper);
        if (!shoppingcarts.isEmpty()){
            for (Shoppingcarts shoppingcart : shoppingcarts) {
                cart cart = new cart();
                cart.setNum(1);
                BeanUtils.copyProperties(shoppingcart,cart);
                System.out.println(cart);              if(shoppingcart.getCreateTime().isBefore(LocalDateTime.now().plusDays(-1))){
                   shoppingcartsService.delcart(cart);
                }
            }

        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值