异步任务(Async Task)
- 什么是异步任务:就是有多个线程来执行业务,比如,我去发一个邮件,需要等邮件发送完毕我才能做其他的操作,但是异步任务就是让你点击发送邮件后直接显示发送完成,你这样就可以进行其他操作了,发邮件的任务交给其他线程做,相当于虽然邮件可能在后台发送中,但是你现在可以不用管它,可以进行其他的操作,这样就不需要用户花费等待时间了。
- 实现方法:首先在SpringBoot的主函数中添加
@EnableAsync
注解,然后再在某个具体的方法上面添加@Async
注解,表示这是一个异步的方法。
Tips:超级简单,使用两个注解就可以,自己也可以用原生java编写多线程处理。
邮件任务
- 导入依赖
<!--导入邮件任务的依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 直接在application.properties配置文件中配置自己的邮箱相关的
spring.mail.username=42410334@qq.com
spring.mail.password=xxxxxx
#开启加密验证
spring.mial.properties.mail.smtp.ssl.enable=true
- 业务实现:
public class SendMail{
@AutoWired
JavaMailSenderImpl mailSender;
// 实现一个简单的邮件发送
public void sendSimpleContext(){
// 一个简单的邮件
SimpleMailMessage mailMassage = new SimpleMailMessage();
maiMassage.setSubject("邮件的主题,也就是标题");
mailMassage.setText("邮件的内容");
mailMassage.setTo("42410334@qq.com"); // 发送给谁
mailMassage.setFrom("42410334@qq.com"); // 谁发送的
mailSender.send(mailMassage);
}
// 实现一个复杂的邮件发送
public void sendContext(){
// 一个复杂的邮件
MimeMessage mimeMessage = new MimeMessage();
// 组装
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setSubject("邮件的主题,也就是标题");
helper.setText("<p style='color: red'>邮件的内容</p>",true); // 可以支持HTML文本
// 附件
helper.setAttachment("1.jpg",new File("xxx文件的路径"));
helper.setTo("xxx");
helper.setFrom("xxx");
mailSender.send(helper);
}
}
定时任务
- 两个重要的类:
- TaskExecute(接口) : 任务执行者
- TaskScheduler(接口) :任务调度程序
- 在SpringBoot的主函数中添加
@EnableScheduling
注解,然后在具体的方法上添加@Scheduled(cron="xxx")
注解,这个注解后面有cron表达式,在这个表达式内写你想在哪个时间段执行这个方法。 - cron表达式:在线生成cron表达式
网友评论