Springboot-27高级特性-任务(异步、定时、邮件)

1、异步任务

  • @EnableAsyc:主程序开启异步注解;
  • @Asyc:方法添加注解,告诉spring是一个异步方法,就会开一个线程池自动调用;

2、定时任务

  • @EnableScheduling:开启定时任务;
  • @Scheduled:方法标注定时表达式;
    表达式6位,分别代表:秒分时日月周
//每天每秒启动
@Scuheduled(cron="* * * * * MON-SAT"//每周一到周五整秒启动,即每周一到周五每分钟启动一次
@Scuheduled(cron="0 * * * * MON-FRI"//每周一到周五0秒,1秒,2秒,3秒,4秒启动
@Scuheduled(cron="0,1,2,3,4 * * * * MON-FRI"@Scuheduled(cron="0-4 * * * * MON-FRI"//每周一到周五0秒启动,每4秒一次
@Scuheduled(cron="0/4 * * * * MON-FRI"//每月周一到周六10:15执行一次
@Scuheduled(cron="0 15 10 ? * 1-6"//每月最后一个周六2:00执行一次
@Scuheduled(cron="0 0 2 ? * 6L"//每月最后一个工作日2:00执行一次
@Scuheduled(cron="0 0 2 LW * ?"//每个月第一个周一2:00-4:00的每个整点执行一次
@Scuheduled(cron="* * 2-4 ? * 1#1"
符号含义
*任意
枚举
-区间
/步长
日与星期冲突匹配
L最后
W工作日
#星期,4#2:第二个星期四
注意:
  • 日和星期会出现冲突,需要?匹配,如每日和星期天执行会发生冲突,其中一个需要?表示;
  • 星期处理单词缩写,也可以用数字表示,1-6表示周一到周六,0与7表示周日;

3、邮件任务

依赖:

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

配置:

spring:
  mail:
    username: yan
    password: xssuhxsxianzq #为第三方登录授权码
    host: smtp.qq.com #smtp主机地址
  • 需要开通邮箱服务,获取第三方登录授权码

实现

    @Autowired
    JavaMailSenderImpl mailSender;

    public void sendMail() throws MessagingException {
        //1 简单邮件
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setSubject("标题");
        mailMessage.setText("内容");
        mailMessage.setTo("收件人1","收件人2");
        mailMessage.setFrom("发送人");
        
        mailSender.send(mailMessage);
        
        //2 复杂邮件
        //2-1 创建邮件
        MimeMessage message =  mailSender.createMimeMessage();
        MimeMessageHelper messageHelper = new MimeMessageHelper(message,true);
        //2-2设置内容
        messageHelper.setSubject("标题");
        messageHelper.setText("<h4>内容</h4>",true);//这是一个html
        messageHelper.setTo("收件人");
        messageHelper.setFrom("发送人");
        messageHelper.addAttachment("文件名称", new File("文件路径1"));
        
        mailSender.send(message);
    
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值