zoukankan      html  css  js  c++  java
  • 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


    击石乃有火,不击元无烟!!
  • 相关阅读:
    MyBatis学习总结(5)——实现关联表查询
    MyBatis学习总结4--解决字段名与实体类属性名不相同的冲突
    MyBatis学习总结3-优化MyBatis配置文件
    各种数据库的数据类型
    Ubuntu下jdk配置
    null和""的区别
    单例模式
    知识体系(不断更新)
    Servlet错误一览
    如何锻炼敲代码的能力
  • 原文地址:https://www.cnblogs.com/rain2020/p/13473715.html
Copyright © 2011-2022 走看看