zoukankan      html  css  js  c++  java
  • SpringBoot(6) ------>异步任务、邮件任务与定时任务

    一、异步任务

    1、启动类上添加@EnableAsync注解,启用异步模式

    2、方法上添加@Async注解

    /**
     * @author liangd
     * date 2020-12-15 10:49
     * code 异步任务
     */
    @Service
    public class AsyncService {
        /**
         * 开启异步,加上这个注解就不会等待3s时间
         */
        @Async
        public void hello(){
            try {
                System.out.println("数据处理中....");
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    二、邮件任务

    1、向pom文件中添加依赖

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

    2、application.properties配置

    spring.mail.username=2425250502@qq.com
    spring.mail.password=jzkhabcgveioeaec
    spring.mail.host=smtp.qq.com
    #spring.mail.properties.mail.smtp.ssl.enable=true

    3、测试

        用qq邮箱向网易邮箱发送邮件

       @Autowired
        JavaMailSenderImpl mailSender;
    
    
        /**
         * 简单的邮件发送
         */
        @Test
        void contextLoads() {
            SimpleMailMessage message = new SimpleMailMessage();
            message.setSubject("重要通知:请各位查收");       //标题
            message.setText("今晚7点30分,全体成员到会议室开会"); //内容
    
            message.setTo("18090287931@163.com");
            message.setFrom("2425250502@qq.com");
    
            mailSender.send(message);
        }
    
        /**
         * 复杂的邮件发送
         */
        @Test
        void testMail() {
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            try {
                MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
                helper.setSubject("重要通知:请各位查收");
                helper.setText("<h2 style='color:red'>今晚7点30分,全体成员到会议室开会<h2/>", true);
    
                helper.setTo("18090287931@163.com");
                helper.setFrom("2425250502@qq.com");
    
                //文件发送
                helper.addAttachment("loginImg.jpg", new File("E:\liangd\ylws-04\web\img\loginImg.jpg"));
                helper.addAttachment("class02.jpg", new File("E:\liangd\Documents\文档\图片\lcsz\class02.jpg"));
    
                mailSender.send(mimeMessage);
            } catch (MessagingException e) {
                e.printStackTrace();
            }
        }

    注意:要在qq邮箱设置-->账户下,开启以下两种服务

    三、定时任务

    1、启动类上添加@EnableScheduling注解

    2、方法上添加@Scheduled注解

    package com.donleo.task.service;
    
    import org.springframework.scheduling.annotation.Scheduled;
    import org.springframework.stereotype.Service;
    
    /**
     * @author liangd
     * date 2020-12-15 11:09
     * code 定时任务
     */
    @Service
    public class ScheduledService {
    
        /**
         * cron 参数顺序
         * second(秒), minute(分), hour(时), day of month(日), month(月), day of week(周几).
         *
         * 示例:
         * 0/4 * * * * MON-SAT    表示星期一到星期六中每4秒执行一次
         *
         *  【0 0/5 14,18 * * ?】 每天14点整,和18点整,每隔5分钟执行一次
         *  【0 15 10 ? * 1-6】 每个月的周一至周六10:15分执行一次
         *  【0 0 2 ? * 6L】每个月的最后一个周六凌晨2点执行一次
         *  【0 0 2 LW * ?】每个月的最后一个工作日凌晨2点执行一次
         *  【0 0 2-4 ? * 1#1】每个月的第一个周一凌晨2点到4点期间,每个整点都执行一次;
         */
        @Scheduled(cron = "0/4 * * * * MON-SAT")
        public void scheduled(){
            System.out.println("定时任务");
        }
    }
    作者:donleo123
    本文如对您有帮助,还请多推荐下此文,如有错误欢迎指正,相互学习,共同进步。
  • 相关阅读:
    Linux curl命令详解
    php技能树---大神的进阶之路
    PHP Socket 编程之9个主要函数的使用之测试案例
    史上最全的PHP正则表达式
    php 简单使用redis 队列示例
    PHP中使用 Memcached 的测试案例
    机动车驾驶(1)--- 禁令标志汇总 by John
    闵可夫斯基和(Mincowsky sum)
    二维平面上判断点是否在三角形内
    计算任意多边形的面积
  • 原文地址:https://www.cnblogs.com/donleo123/p/14287150.html
Copyright © 2011-2022 走看看