第⼗章 SpringBoot2.X整合定时任务和异步任务

1.SpringBoot2.X定时任务schedule讲解

  • 什么是定时任务,使⽤场景
    某个时间定时处理某个任务
    发邮件、短信等
    消息提醒
    订单通知
    统计报表系统
  • 常⻅定时任务
    Java⾃带的java.util.Timer类配置⽐较麻烦,时间延后问题
    Quartz框架: 配置更简单,xml或者注解适合分布式或者⼤型调度作业
    SpringBoot框架⾃带
  • SpringBoot使⽤注解⽅式开启定时任务
    启动类⾥⾯ @EnableScheduling开启定时任务,⾃动扫描
    定时任务业务类 加注解 @Component被容器扫描
    定时执⾏的⽅法加上注解 @Scheduled(fixedRate=2000) 定期执⾏⼀次
    在这里插入图片描述在这里插入图片描述

2. SpringBoot2.X多种定时任务配置

  • cron 定时任务表达式 @Scheduled(cron="*/1 * * * * *") 表示每秒

  • crontab ⼯具 https://tool.lu/crontab/
    在这里插入图片描述在这里插入图片描述

  • fixedRate: 定时多久执⾏⼀次(上⼀次开始执⾏时间点后xx秒再次执⾏;)

  • fixedDelay: 上⼀次执⾏结束时间点后xx秒再次执⾏
    在这里插入图片描述

3.SpringBoot2.x异步任务EnableAsync实战

  • 什么是异步任务和使⽤场景:适⽤于处理log、发送邮件、短信……等
    下单接⼝->查库存 1000
    余额校验 1500
    ⻛控⽤户1000
  • 启动类⾥⾯使⽤@EnableAsync注解开启功能,⾃动扫描
  • 定义异步任务类并使⽤@Component标记组件被容器扫描,异步⽅法加上@Async
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.SpringBoot2.x异步任务Future

  • 定义异步任务类需要获取结果
  • 要把异步任务封装到类⾥⾯,不能直接写到Controller
  • 增加Future 返回结果 AsyncResult(“task执⾏完成”)
  • 如果需要拿到结果 需要判断全部的 task.isDone()
    在这里插入图片描述在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值