Springboot使用异步任务,定时任务,邮件任务

异步任务

在启动类上加上@EnableAsync开启异步注解,然后在需要异步执行的方法上加上@Async就行了,springboot会自动开启一个线程去执行这个方法

 @Async
    public void hello() throws InterruptedException {
        Thread.sleep(3000);
        System.err.println("处理数据中。。。");
    }

定时任务

在启动类上加上@EnableScheduling,然后在需要定时执行的方法上面加上@Scheduled(cron= xxx),具体配置时间,请看详细例子和图:

/**
 *second(秒),minute(分),hour(时),day of month(日),month(月), and day week(周几)
 *0 * * * *MON-FRI  MON-WED这种英文简写也可以用数字代替
 * 0 0/5 14,18 * * ?  每天14点整和18点整,每隔5分钟执行一次
 * 0 15 10 ? * 1-6  每个月的周一到周六10:15分钟执行一次
 * 0 0 2 ? * 6L     每个月的最后一个星期6 凌晨2点执行一次
 * 0 0 2 LW * ?     每个月的周后一个工作日 凌晨2点执行一次
 * 0 0 2-4 ? * 1#1   每个月的第一个周一凌晨2点到4点每个整点执行一次
 * 不想手写这个cron的表达式的话也可以用http://cron.qqe2.com/生成
 */
//@Scheduled(cron = "0 * * * * MON-WED")  //意思为星期一到星期三 0秒的时候执行一次
//@Scheduled(cron = "0,1,2,3,4 * * * * MON-WED") //意思为星期一到星期三 0,1,2,3,4秒的时候执行一次
//@Scheduled(cron = "0-4 * * * * MON-WED")//和上面一个意思一样
@Scheduled(cron = "0/4 * * * * MON-WED")//每四秒执行一次
public void hello() {
    System.out.println("hello");
}

邮件任务

我这个示例的时用qq邮箱发送,如果要使用别的邮箱的话配置文件有些不同,可以去自己的邮箱中找

导入pom文件:

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

配置文件:

#配置邮件信息
#账号
spring.mail.username=1559810637@qq.com
#密码,此密码不是qq邮箱的密码,而是POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务的授权码
spring.mail.password=xxxxx
#qq邮箱用来发送的地址
spring.mail.host=smtp.qq.com
#设置为安全的,不然会发送不了
spring.mail.properties.mail.smtp.ssl.enable=true

关于这个密码的获取:

示例:

//邮件
@Autowired
JavaMailSenderImpl javaMailSender;
//创建简单邮件
@Test
public void contextLoads() {
    SimpleMailMessage message = new SimpleMailMessage();
    //标题
    message.setSubject("通知-Test");
    //内容
    message.setText("邮件测试");
    //接收人
    message.setTo("xxxx@qq.com");
    //发送人
    message.setFrom("1559810637@qq.com");
    javaMailSender.send(message);
}
//复杂邮件
@Test
public void test02() throws MessagingException {
    //创建一个复杂的消息邮件
    MimeMessage mimeMessage = javaMailSender.createMimeMessage();
    MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
    //标题
    mimeMessageHelper.setSubject("通知-Test");
    //内容,第二个参数是是否开启html格式
    mimeMessageHelper.setText("<h1 style='color:red'>邮件测试2</h1>",true);
    //接收人
    mimeMessageHelper.setTo("xxxxxx@qq.com");
    //发送人
    mimeMessageHelper.setFrom("1559810637@qq.com");
    //上传文件 ,第一个参数为发送附件的名字,第二个为文件,可以是一个file,也可以是io流
    // 可以多个
    mimeMessageHelper.addAttachment("笔记.pdf",
            new File("E:\\学习\\SpringBoot笔记.pdf"));
    //发送
    javaMailSender.send(mimeMessage);
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值