• SpringBoot-11-任务



    异步任务

    (程序不会等,直接往下执行)

    实现方式:

    主启动类加注解@EnableAsync+方法上加@Async
    //开启异步注解功能
    @EnableAsync
    @SpringBootApplication
    public class TaskTestApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(TaskTestApplication.class, args);
        }
    
    }
    @Service
    public class AsyncService {//异步任务
        @Async
        public void hello(){
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("正在处理……");
        }
    }
    @RestController
    public class AsyncController {
    
        @Autowired
        AsyncService asyncService;
    
        @RequestMapping("/hello")
        public String hello(){
            asyncService.hello();//停止3秒,转圈
            return "OK";
        }
    }

    http://localhost:8080/hello


    邮件任务

    导入依赖

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

    配置文件

    spring.mail.username=810808038@qq.com
    spring.mail.password=邮箱管理页面获取密码
    spring.mail.host=smtp.qq.com
    # 开启加密验证 qq特有
    spring.mail.properties.mail.smtp.ssl.enable=true

    发送邮件(可封装成工具类)

    @SpringBootTest
    class TaskTestApplicationTests {
    
        @Autowired
        JavaMailSenderImpl javaMailSender;
    
        @Test
        void contextLoads() {
            //发送简单邮件
            SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
            simpleMailMessage.setSubject("你好鸭丶");
            simpleMailMessage.setText("sdfsdfsdfsdfsdfsdfsdfsdf");
    
            simpleMailMessage.setFrom("810808038@qq.com");
            simpleMailMessage.setTo("1714616511@qq.com");
            javaMailSender.send(simpleMailMessage);
        }
    
        @Test
        void contextLoads2() throws MessagingException {
            //发送复杂邮件
            MimeMessage mimeMessage = javaMailSender.createMimeMessage();
            MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
            mimeMessageHelper.setSubject("你好鸭……");
            mimeMessageHelper.setText("<p style='color:red'>谢谢你的鸭</p>",true);
            mimeMessageHelper.addAttachment("1.jpg",new File("C:\Users\yu.chen\Desktop\1.jpg"));
            mimeMessageHelper.addAttachment("2.jpg",new File("C:\Users\yu.chen\Desktop\2.jpg"));
    
            mimeMessageHelper.setFrom("810808038@qq.com");
            mimeMessageHelper.setTo("1714616511@qq.com");
            javaMailSender.send(mimeMessage);
        }
    }

    定时任务

    TaskExecutor任务执行
    TaskScheduler任务调度

    用法也很简单,就两步

    第一步:@EnableScheduling//开启定时功能的注解
    第二步:@Scheduled(cron="0 4 14 * * 0-7")//在方法上添加此注解,此方法定时执行
    (百度找在线Cron表达式)

    https://github.com/ChenCurry/springboot-collection/tree/main/sb-11-task


    击石乃有火,不击元无烟!!
  • 相关阅读:
    Redis笔记 —— string 篇
    解决跨域请求无法携带Cookie的问题
    Mysql事务学习笔记
    Redis笔记 —— hash 篇
    mysql视图的简单学习
    axios无法被识别为ajax请求的解决方案
    常见header信息详解
    int 15h
    操作系统有进程了
    是时候走我自己的路线了,真正的做我自己的Jinux
  • 原文地址:https://www.cnblogs.com/rain2020/p/13473715.html
Copyright © 2020-2023  润新知