异步任务

  • 在需要开启异步的服务加上注解:@Async
@Service
public class AsyncService { //告诉SpringBoot这是一个异步任务,SpringBoot会自动开启一个线程去执行
@Async
public void testAsyncService(){
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("执行异步成功");
}
}
复制代码
  • 在主配置类上添加开启异步注解功能:@EnableAsync
@EnableAsync   //开启异步注解功能
public class SpringbootMybatisApplication {
复制代码

定时任务

  • 在需要开启定时任务的服务上添加注解@Scheduled(cron = "0 * * * * MON-SAT")
    /* {秒数} {分钟} {小时} {日期} {月份} {星期} {年份(可为空)}
* cron的六个符号分别对应以上时间单位,空格隔开
* * 表示所有值;
* ? 表示未说明的值,即不关心它为何值;
* - 表示一个指定的范围;
* , 表示附加一个可能值;
* / 符号前表示开始时间,符号后表示每次递增的值;
*/
@Service
public class ScheduledService {
@Scheduled(cron = "0 * * * * MON-SAT")
public void testSchedule(){
System.out.println("测试定时任务成功");
}
}
复制代码

  • 在主配置类上开启定时任务注解功能:@EnableScheduling

邮件任务

  • 引入邮件依赖组件
<!-- 引入邮件,如果发现注入失败,可以自行到maven官网下载jar放进对应文件夹 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
复制代码

可能会产生的错误:注入失败(可以自行到maven官网下载jar放进对应文件夹):

  • 邮箱开启POP3/SMTP服务

  • 在主配置文件(yml方式)中配置邮箱参数

spring:
mail:
username: yourqq@qq.com
password: xxxxxx //授权码,在服务选项中获取
host: smtp.qq.com //qq邮箱服务器
properties:
mail:
smtp:
ssl:
enable: true //开启安全连接
复制代码
  • 测试邮件发送
@Autowired
JavaMailSenderImpl mailSender; /**
* 创建简单消息邮件
*/
@Test
public void testMail(){
SimpleMailMessage message = new SimpleMailMessage();
message.setSubject("这是主题");
message.setText("这是内容");
//收件人
message.setTo("xxxxx@qq.com");
//发送人
message.setFrom("xxxxx@qq.com");
mailSender.send(message);
} /**
* 创建复杂消息邮件
*/
@Test
public void testMail02() throws MessagingException {
MimeMessage mimeMessage = mailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setSubject("这是复杂消息邮件主题");
helper.setText("<b style='color:red;'>这是复杂消息邮件内容</b>",true);
//添加附件1
helper.addAttachment("1.jpg",new File("E:\\desktop\\8234.jpg"));
//添加附件2
helper.addAttachment("2.docx",new File("E:\\desktop\\形势与政策课作业.docx"));
//收件人
helper.setTo("xxxx@qq.com");
//发送人
helper.setFrom("xxxxx@qq.com");
mailSender.send(mimeMessage);
} 复制代码

测试成功

 

作者:malizhi
链接:https://juejin.im/post/5c16687d6fb9a04a0f65141a

SpringBoot与异步任务、定时任务、邮件任务的更多相关文章

  1. springboot中的任务(异步任务--定时任务--邮件任务)

    1.pom文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="htt ...

  2. 【java框架】SpringBoot(4)--SpringBoot实现异步、邮件、定时任务

    1.SpringBoot整合任务机制 1.1.SpringBoot实现异步方法 日常开发中涉及很多界面与后端的交互响应,都不是同步的,基于SpringBoot为我们提供了注解方式实现异步方法.使得前端 ...

  3. SpringBoot使用异步线程池实现生产环境批量数据推送

    前言 SpringBoot使用异步线程池: 1.编写线程池配置类,自定义一个线程池: 2.定义一个异步服务: 3.使用@Async注解指向定义的线程池: 这里以我工作中使用过的一个案例来做描述,我所在 ...

  4. SpringBoot中异步请求和异步调用(看这一篇就够了)

    原创不易,如需转载,请注明出处https://www.cnblogs.com/baixianlong/p/10661591.html,否则将追究法律责任!!! 一.SpringBoot中异步请求的使用 ...

  5. Celery+python+redis异步执行定时任务

    我之前的一篇文章中写了[Celery+django+redis异步执行任务] 博文:http://blog.csdn.net/apple9005/article/details/54236212 你会 ...

  6. 日夕如是寒暑不间,基于Python3+Tornado6+APScheduler/Celery打造并发异步动态定时任务轮询服务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_220 定时任务的典型落地场景在各行业中都很普遍,比如支付系统中,支付过程中因为网络或者其他因素导致出现掉单.卡单的情况,账单变成了 ...

  7. Java多线程开发系列之五:Springboot 中异步请求方法的使用

    Springboot 中异步线程的使用在过往的后台开发中,我们往往使用java自带的线程或线程池,来进行异步的调用.这对于效果来说没什么,甚至可以让开发人员对底层的状况更清晰,但是对于代码的易读性和可 ...

  8. SpringBoot 异步 定时任务 邮件

    springboot异步 一: 在 MyConfiguration.java 中开启注解 @Configuration//指明当前类是一个配置类:就是来替代之前的Spring配置文件@EnableAs ...

  9. SpringBoot(十) 异步任务,定时任务和邮件任务

    异步任务 “异步调用”对应的是“同步调用”,同步调用指程序按照定义顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行:异步调用指程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的 ...

随机推荐

  1. Envoy如何打败Linkerd成为L7负载平衡器的最佳选择?

    本文转自:http://www.servicemesh.cn/?/article/41 作者:MIKE WHITE 翻译:姚炳雄 原文:Using Envoy to Load Balance gRPC ...

  2. [知乎]老狼:UFS VS NVMe

    https://zhuanlan.zhihu.com/p/26652622 最近某手机厂商的闪存门在知乎上被人踢爆,在所谓“爵士水军”和“友商水军”的口水大战中,至少eMMC, UFS等火星名词被广泛 ...

  3. 2018 焦作icpc现场赛总结

    Day 0 没有直达焦作的飞机,所以选择了先到新郑机场,再转乘城际列车.城际列车猜是专门给学生开通的吧,每天只有来和回一共两趟(所以机票选择的余地也不多).买的时候只有无座票了,本来以为会一直站着,但 ...

  4. java 实用类

                                                java  实用类 1.File类为管理文件和目录提供了方法,其对象表示一个文件或者目录.它提供了若干方法对文件 ...

  5. MT【121】耐克数列的估计

    已知$\{a_n\}$满足$a_1=1,a_2=2,\dfrac{a_{n+2}}{a_n}=\dfrac{a_{n+1}^2+1}{a_n^2+1}$, 求$[a_{2017}]$_____ 解:容 ...

  6. C#基础-代码部署数据库及IIS站点

    一.前言        最近忙里偷闲,做了一个部署数据库及IIS网站站点的WPF应用程序工具. 二.内容        此工具的目的是: 根据.sql文件在本机上部署数据库 在本机部署IIS站点,包括 ...

  7. 【CF938G】Shortest Path Queries(线段树分治,并查集,线性基)

    [CF938G]Shortest Path Queries(线段树分治,并查集,线性基) 题面 CF 洛谷 题解 吼题啊. 对于每个边,我们用一个\(map\)维护它出现的时间, 发现询问单点,边的出 ...

  8. 使用rundll32.exe绕过应用程序白名单(多种方法)

    0x00 前言 本文演示了白名单AppLocker bypass的最常见和最熟悉的技术.我们知道,出于安全原因,系统管理员添加组策略来限制本地用户的应用程序执行.在上一篇文章中,我们讨论了“ Wind ...

  9. wazuh安装手册

    一.wazhu部署架构 1.服务器上运行的Agent端会将采集到的各种信息通过加密信道传输到管理端. 2.管理端负责分析从代理接收的数据,并在事件与告警规则匹配时触发警报. 3.LogStash会将告 ...

  10. XML外部实体(XXE)注入详解

    ###XML与xxe注入基础知识 1.XMl定义 XML由3个部分构成,它们分别是:文档类型定义(Document Type Definition,DTD),即XML的布局语言:可扩展的样式语言(Ex ...