玩转SpringBoot的三种任务

异步任务

明确概念:同步和异步的区别

同步:是阻塞模式异步是非阻塞模式
同步就是指程序在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
异步就是程序调用一个耗时较长的功能(方法)时,它并不会阻塞程序的执行流程,程序会继续往下执行。当功能执行完毕时,程序能够获得执行完毕的消息或能够访问到执行的结果(如果有返回值或需要返回值时)。

同步过程

public void hello(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println("数据正在处理中");
    }

在这里插入图片描述
在这里插入图片描述

异步任务

我们只需要告诉调用者这是一个异步方法那么系统便会自动的帮我们执行异步操作

  1. 在方法上通过注解告诉spring这是一个异步方法
  2. 在启动类上开启支持异步注解功能
    在这里插入图片描述
    在这里插入图片描述

邮件任务

找到QQ邮箱找到设置中的账户然后将服务开启
在这里插入图片描述
引入支持邮件发送的依赖

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

我们先来看一下邮箱发送的源码然后根据源码内容将配置信息重新编写在配置文件中

在这里插入图片描述

配置文件内容

在这里插入图片描述

让我们简单的测试发送一封邮件

    @Autowired
    private JavaMailSenderImpl mailSender;
    @Test
    void contextLoads() {
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setSubject("测试邮件发送");
        mailMessage.setText("邮件正文");
        mailMessage.setTo("3212746324@qq.com");
        mailMessage.setFrom("3212746324@qq.com");
        mailSender.send(mailMessage);
    }

在这里插入图片描述

复杂博客怎么去书写

//上传一个复杂的邮件
        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("C:\\Users\\郭家森\\Desktop\\Inner\\测试图片.jpg"));
        helper.setTo("3212746324@qq.com");
        helper.setFrom("3212746324@qq.com");
        mailSender.send(mimeMessage);

在这里插入图片描述

定时执行任务

说白了定时任务就是让程序在指定的时间或者在规定的时间点上执行相应的代码

两部操作

  1. 在启动类上开启支持定时任务的注解
  2. 在方法上加上定时任务的注解并指定相应的cron表达式
@EnableScheduling
    /**
     * 1:cron表达式
     * 2:秒 分 时 日 月 周几
     * 每两秒执行一次
     */
    @Scheduled(cron = "0/2 * * * * ?")
    public void hello(){
        System.out.println("执行定时认为");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值