码迷,mamicode.com
首页 > 其他好文 > 详细

AsyncTask,MailTask,ScheduledTask

时间:2021-01-18 11:22:09      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:在线生成   简洁   send   表达   ctas   cut   配置邮件   分析   励志   

一,异步任务

  简单的实现,在做具体业务时具体分析

1.在springboot的启动类上加

技术图片

 

2.在业务层实现异步的具体方法,

技术图片

 

结束~,一个简单的异步任务demo实现啦~

 

二,邮件任务

1,导入依赖

     <!--邮件任务依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

 

2.在peoperties或yaml配置邮件任务驱动的相关信息

注意:拿qq邮件举例,在写代码前需取自己的qq邮箱开通smtp服务

spring.mail.username=3342239623@qq.com
spring.mail.password=zxmutdmcxrmgdafj
spring.mail.host=smtp.qq.com

#开启加密验证,只有qq的邮箱必须开启ssl,其他大厂邮箱不需要
spring.mail.properties.mail.smtp.ssl.enable=true

 

 

3.邮件任务简单的实现

3.1简单邮件发送的实现

class Springboot09TestApplicationTests {

    @Autowired
    JavaMailSender mailSender;

    @Test
    void contextLoads() {

        //一个简单的邮件任务测试
        SimpleMailMessage mailMessage=new SimpleMailMessage();

        mailMessage.setSubject("帅哥,您好");
        mailMessage.setText("励志做一个java全干工程师,来自另一个帅哥给您发送的邮件");
        mailMessage.setTo("xxxxx@qq.com");
        mailMessage.setFrom("xxxxx@qq.com");

        mailSender.send(mailMessage);
    }

 

3.2复杂邮件格式信息发送实现

可以自定义发送文本格式(图片视频),也可以设置样式

    @Test
    void contextLoads2() throws MessagingException {

        //一个复杂的邮件任务测试
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //组装
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);

        //正文
        helper.setSubject("帅哥,您好");
        helper.setText("<h1 style=‘color:red‘>您有一张图片请查收</h1>",true);

        //附件
        helper.addAttachment("1.jpg",new File("相对路径or绝对路径"));

        helper.setTo("xxxxxx@qq.com");
        helper.setFrom("xxxxxx@qq.com");

        mailSender.send(mimeMessage);
    }

扩展:邮件任务是业务开发中比较常见的,所以可以将他封装成一个工具类,以便于以后的使用

 

简单的邮件任务工具类

/**
     *
     * @param html
     * @param subject
     * @throws MessagingException
     * @Author king~
     */
    //自定义封装成一个工具类
    public void sedMail(Boolean html,String subject) throws MessagingException {


        //一个复杂的邮件任务测试
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        //组装
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,html);

        //正文
        helper.setSubject(subject);
        helper.setText("<h1 style=‘color:red‘>您有一张图片请查收</h1>",true);

        //附件
        helper.addAttachment("1.jpg",new File("相对路径or绝对路径")); 
     helper.setTo(
"xxxxx@qq.com"); helper.setFrom("xxxx3@qq.com"); mailSender.send(mimeMessage); }

 

定时任务

说明:最早是Timer,相信大家都已经非常熟悉 java.util.Timer 了,它是最简单的一种实现任务调度的方法
特点:in JDK,简洁,单线程

但是因为他是单线程所以它是串行的,所以不能满足当前盛行的高并发的需求开发

因此出现了ScheduledExecutor;

此篇实现的就是基于ScheduledExecutor的;

 

相关注解:

技术图片

 

 

实现:

1.在启动类标注 @EnableScheduling  //开启定时任务

2.在业务层的定时任务相关方法上标注注解  @Scheduled(cron="0/2 * * * * ?")  //表示什么时候执行

 

实现一个小demo,

功能:每两秒给特定邮箱发送垃圾邮件!实现邮件轰炸!

提示:请不要将合法手段用到不正当的地方

@Service
public class ScheduledService {
    @Autowired
    JavaMailSender mailSender;
    //在一个固定的时间执行这个方法~ Timer
    //corn表达式!
    //格式:秒,分,时,日,月,周几~  有在线生成工具
    /*
    * 例子:30 15 10 * * ?  每天的10点15分30秒调度(执行)一次
    *      30 0/5 10,18 * * ?   每天的18点和10点的30秒处,每隔5分钟执行一次
    *      0 15 10 ? * 1-6 周一至周六的10.15分钟执行一次
    * */
    @Scheduled(cron="0/2 * * * * ?")
    public void hello(){
        //一个简单的邮件任务测试
        SimpleMailMessage mailMessage=new SimpleMailMessage();

        mailMessage.setSubject("帅哥,您好");
        mailMessage.setText("我是邮件轰炸机,您已被击中");
        mailMessage.setTo("xxxxxxx@qq.com");
        mailMessage.setFrom(xxxxxx@qq.com");

        mailSender.send(mailMessage);
        System.out.println("hello,你被执行了~");
    }

}

 

AsyncTask,MailTask,ScheduledTask

标签:在线生成   简洁   send   表达   ctas   cut   配置邮件   分析   励志   

原文地址:https://www.cnblogs.com/CL-King/p/14288641.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!