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("定时任务");
    }
}
复制代码

 

posted @   donleo123  阅读(98)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示