异步任务
如果我们想要开启异步注解功能需要在SpringBoot的启动类上加上@EnableAsync注释
@EnableAsync
@SpringBootApplication
//项目启动
public class SpringBoot4Application {
public static void main(String[] args) {
ApplicationContext run = SpringApplication.run(SpringBoot4Application.class, args);
String serverPort = run.getEnvironment().getProperty("server.port");
}
}
然后就可以使用@Async注解方法,表示这是一个异步方法了如:
import org.springframework.scheduling.annotation.Async;
public class test{
@Async
public void test(){
Thread.sleep(1000);
}
}
邮箱任务
导入依赖:
<!-- SpringBoot自带发送邮箱依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
在yml中机械能配置如:
spring:
#配置邮箱发送
mail:
#授权码
password: hbwdugzzjufnddda
username: 3068384097@qq.com
host: smtp.qq.com
进行编写代码如:
@Autowired
JavaMailSenderImpl javaMailSender;
@RequestMapping("/test")
public String test02(){
SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
simpleMailMessage.setText("自嗨中....");
simpleMailMessage.setTo("3068384097@qq.com");
simpleMailMessage.setFrom("3068384097@qq.com");
javaMailSender.send(simpleMailMessage);
return "index";
}
定时执行任务
TaskScheduler 任务调度者
TaskExecutor 任务执行者
@EnableScheduling 开启定时任务功能的注解
@Scheduled 什么时候执行
Cron表达式
//定时任务测试
/**
* cron 表达式
* 秒 分 时 日 月 周几
* "30 15 10 * * ?" 表示每天10时15分30秒执行一次
* "30 0/5 10,18 * * ?" 表示每天10和18点时每隔5分钟执行一次
* "0 15 10 ? * 1-6" 表示每个月的周一到周六的10:15:0执行一次
* "0/2 * * * * ?" 表示每两秒执行一次任务
*/
@Scheduled(cron = "0/2 * * * * ?")
public void hello(){
System.out.println("到点了,执行了定时任务!");
}