一、异步任务
当一个方法需要执行很长时间时,并且这个方法的执行对下面的代码没有任何影响(没有用到返回值),便可以使用异步来加快程序的运行,而不是等待那个方法执行完才执行下面的。
举个例子:
1 |
|
1 |
|
很简单的代码,hello方法睡眠了三秒,而在controller中便需要等待三秒才能执行下面的方法
可以看到控制台,没问题,等了三秒才执行下面的方法。
而让他异步执行对于springboot来说非常简单,只需添加两个注解
@EnableAsync
对主程序类使用,开启异步注解
@Async
对方法使用,标明此方法异步调用
1 |
|
1 |
|
添加好异步注解后,再次执行试一下:
可以看到,先执行了下面的方法,而睡觉方法后执行完毕。
二、定时任务
定时任务顾名思义,在指定的时间执行的方法,比如:每天的11点执行,或者每个月的第三个工作日执行等等。
主要也是使用两个注解
@Scheduled和@EnableScheduling
如下:我定制了一个每分钟执行一次的方法,果然在00秒时执行任务。
配置规则
cron具有有个小参数,分别为==秒 分 时 日 月 星期几==
cron表达式:
示例:
1 | 【0 0/5 14,18 * * ?】:每天14点整和18点整,每隔5分钟执行一次,即14:00,14:05,14:10.... |
三、邮件任务
可以使用spring-boot-starter-mail
组件来进行邮件的发送
配置文件配置:
1 | xxx@qq.com = |
注意密码是临时授权码,而不是qq密码,需要去邮箱开启pop3smtp。
在springboot1.x时,发送邮件可能会抛出ssl未打开异常,需要单独配置,而在2.x默认打开了
1 | true = |
测试类:
1 |
|
可以看到没问题