springboot配置异步任务,定时任务和邮件任务

简介

本文配置SpringBoot的3种任务,异步任务,定时任务,邮件任务。更多内容

异步任务

  1. 在主入口开启异步任务配置
@EnableAsync //开启异步注解
@SpringBootApplication
public class SpringbootApplication {
	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
}
  1. 通过@Async声明一个异步任务
@Service
public class TeskService {
    @Async
    public void asyncService(){
        System.out.println("异步任务处理数据");
    }
}

定时任务

  1. 程序主入口开启定时任务
@EnableScheduling  //开启基于注解的定时任务
@SpringBootApplication
public class SpringbootApplication {
	public static void main(String[] args) {
		SpringApplication.run(SpringbootApplication.class, args);
	}
}
  1. 配置定时任务

@Service
public class TeskService {
    @Scheduled(cron="0/4 * * * * *")
    public void timeService(){
        System.out.println("每4秒执行一次,执行定时器了!");
    }

}
  1. cron的表达式说明
  • corn表达是由6位组成,*表示所有。
    6尾数分别表示这几个时间
    second(秒), minute(分), hour(时), day of month(日), month(月), day of week(周几)
  1. corn表达是各个字段的允许值
    |字段|允许值|允许的特殊符号|
    |:----|:------|-------|
    |秒 |0-59 |, - * /|
    |分 |0-59 |, - * /|
    |小时 |0-23| , - * /|
    |日期 |1-31 |, - * ? / L W C|
    |月份 |1-12| , - * /|
    |星期| 0-7或SUN-SAT 0,7是SUN |, - * ? / L C #|

  2. 特殊符号代表的含义
    |符号|含义|
    |----|----|
    |, |枚举
    |- |区间
    |* |任意
    |/ |步长
    |? |日/星期冲突匹配
    |L |最后
    |W |工作日
    |C |和calendar联系后计算过的值
    |# |星期,4#2,第2个星期四

  • 一些例子用于解释
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点期间,每个整点都执行一次;
【0 * * * * MON-SAT】星期一到星期6  每到整秒都执行
【0,1,2,3,4 * * * * MON-SAT】星期一到星期6  每到整01234秒都执行0-4 这个同理

邮件任务

  1. 在pom.xml里面引入邮件启动器
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
  1. 在配置文件里面配置相应信息
spring:
  mail:
    #用户名
    username: 1227900499@qq.com
    #这个密码不是邮箱的登录密码,需要在邮箱服务器里面去生成的授权吗,qq邮箱在qq 里面的 设置-->账户里面
    password: xxxxxxx
    #qq服务器是下面这个,其他的服务器需要到相应的地方去找,qq qq在QQ邮箱---->设置---账户里面去找
    host: smtp.qq.com

  1. 事例代码
    @Autowired
    JavaMailSenderImpl mailSender;
    
    //简单邮件测试
    @Test
    public void sendMailTest() {
        SimpleMailMessage message = new SimpleMailMessage();
        //设置邮件的基本信息
        message.setSubject("简单邮件发送测试");
        message.setText("我是测试内容");
    
        message.setTo("325811402@qq.com");
        message.setFrom("1227900499@qq.com");
    
        mailSender.send(message);
    }
    
    //带文件的邮件发送测试
    @Test
    public void sendMailTest2() throws  Exception{
        //1、创建一个复杂的消息邮件
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
    
        //邮件设置
        helper.setSubject("邮件测试");
        //可以加html 标签,单第二个参数要为true ,把html 标签功能开启
        helper.setText("<b style='color:red'>邮件测试类容,可以加标签哦</b>,哈哈",true);
    
        helper.setTo("325811402@qq.com");
        helper.setFrom("1227900499@qq.com");
    
        //上传文件
        helper.addAttachment("1.jpg",new File("C:\\Users\\Administrator.BF-20180801KGCC\\Desktop\\头像\\1.jpg"));
        helper.addAttachment("2.jpg",new File("C:\\Users\\Administrator.BF-20180801KGCC\\Desktop\\头像\\2.jpg"));
    
        mailSender.send(mimeMessage);
    }
    
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值