任务

任务

异步任务

service

@Service
public class AsyncService {
	//告诉spring这是个异步方法
    @Async
    public void hello(){
        try {
            //模拟3秒数据处理
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("数据处理中");
    }
}

controller

@RequestMapping("/hello")
public String hello(){
    asyncService.hello();
    return "ok";
}

主程序上开启异步支持

@EnableAsync

邮箱任务

依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置

spring:
  mail:
    username: 邮箱
    password: 授权码
    #QQ邮箱为信箱服务器
    host: smtp.qq.com
    #QQ邮箱需要设置ssl加密
    properties:
      mail:
        smtp:
          ssl:
            enable:
              true

测试

@Autowired
JavaMailSenderImpl mailSender;

@Test
void contextLoads() {
    //简单邮件
    SimpleMailMessage message = new SimpleMailMessage();
    
    message.setSubject("主题");
    message.setText("正文");
    message.setFrom("发件人@qq.com");
    message.setTo("收件人@qq.com");
    
    mailSender.send(message);
}

@Test
void contextLoads2() throws MessagingException {
    //复杂邮件
    MimeMessage mimeMessage = mailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
    
    helper.setSubject("主题");
    helper.setText("<p style='color:red'>正文</p>", true);
    helper.addAttachment("1.jpg", new File("文件地址"));
    helper.setFrom("发件人@qq.com");
    helper.setTo("收件人@qq.com");
    
    mailSender.send(mimeMessage);
}

定时功能

主程序开启定时功能

@EnableScheduling

service

@Service
public class ScheduledService {
    //cron 表达式 秒 分 时 日 月 星期几 年(年可以省略)
    @Scheduled(cron = "0/2 * * * * ?")//每两秒一次
    public void hello(){
        System.out.println("hello方法执行了");
    }
}
原文地址:https://www.cnblogs.com/pinked/p/12386156.html