【SpringBoot】⑦SpringBoot与任务

实际2020-05-12 15:33:36
此篇文章使用版本:2.2.2.RELEASE
源码

异步任务

在Spring 3.x之后,就已经内置了@Async来完美解决交互时响应迟缓的情况。
两个注解:@EnableAysnc @Aysnc
在这里插入图片描述

定时任务

项目开发中经常需要执行一些定时任务,比如需要在每天凌晨时候,分析一次前一天的日志信息。
Spring为我们提供了异步执行任务调度的方式,提供TaskExecutor TaskScheduler接口。
两个注解:@EnableScheduling @Scheduled
在这里插入图片描述

cron表达式:
cron 和 crontab区别

1
2
3
4
5
6
7
8
9
10
second 秒,minute 分,hour 时,day of month 日,month 月,day of week 周几
cron = "0 * * * * MON-FRI" 表示周一到周五 每一分钟执行一次
cron = "* * * * * MON-FRI" 表示周一到周五 每一秒钟执行一次
cron = "0,1,2,3,4 * * * * MON-FRI" 表示周一到周五 每一分钟允许五次,秒为00 01 02 03 04运行。也可以写为 cron = "0-4 * * * * MON-FRI"
cron = "0/5 * * * * MON-FRI" 表示周一到周五 每5秒执行一次,秒为00 05 10 15 20....运行
cron = "0 0/5 14,18 * * ?" 表示每天小时为14或者18 秒为00 分为00 05 10...执行
cron = "0 15 10 ? * 1-6" 表示周一到周六的每天10:15:00执行
cron = "0 0 2 ? * 6L" 表示每个月的最后一个周六的02:00:00执行
cron = "0 0 2 LW * ?" 表示每个月的最后一个工作日的02:00:00执行
cron = "0 0 2-4 ? * 1#1" 表示每个月的第一个周一凌晨02:00:00 03:00:00 04:00:00都会执行

在这里插入图片描述

邮件任务

邮件发送需要引入spring-boot-starter-mail
Spring Boot 自动配置MailSenderAutoConfiguration
定义MailProperties内容,配置在application.yml中
自动装配JavaMailSender
测试邮件发送
在这里插入图片描述