springboot 任务的学习

Springboot基础学习之(二十二):异步任务和邮件任务 spring boot:实现异步任务以及模拟qq邮箱进行邮件的发送 阅读详情

任务

  • 异步任务
  • 定时任务
  • 邮件发送

一、异步任务

在执行多线程的方法打上@Async注解

@Service
public class AsyncService {
        @Async//告诉spring这是一个异步任务
        public void hello(){
            try {
                Thread.sleep(3000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println("数据正在处理。。。");
        }
}
@RestController
public class HelloController {
    @Autowired
    private AsyncService service;
    @GetMapping("/hello")
    public String hello() {
        service.hello();
        return "OK";
    }
}
@SpringBootApplication
@EnableAsync//开启多线任务
public class TaskDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(TaskDemoApplication.class, args);
    }

}

这样的话,前端页面就不会产生等待时间,会直接刷新数据,数据正在打印。。。会在后台执行,等待三秒后输出。

二、邮件发送

  • 导入jar包
   	 <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-mail</artifactId>
       </dependency>

在qq邮箱中开启服务(设置–> 账户),验证后会得到一个授权码,添加到下面的配置中。
在这里插入图片描述

添加主要配置

spring.mail.username=填你的邮箱
spring.mail.password=授权码
spring.mail.host=smtp.qq.com
#开启加密验证(qq邮箱需要,其他不需要)
spring.mail.properties.mail.smtp.ssl.enable=true

测试发送

 	@Autowired
    JavaMailSenderImpl mailSender;
    @Test
    void contextLoads() {
        //发送一个简单邮件
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("我爱你");
        message.setText("我亲爱的小葱,我是你的大胖子!!!");
        message.setTo("13994897625@163.com");
//        message.setTo("1191599851@qq.com");
        message.setFrom("1191599851@qq.com");
        mailSender.send(message);
    }
	@Autowired
    JavaMailSenderImpl mailSender;
	@Test
    void contextLoads2() throws MessagingException {
       //复杂邮件发送
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
        //设置文本内容
        helper.setSubject("我爱你");
        //true表示能够解析html文本
        helper.setText("<p style='color:red;'>我亲爱的小葱,我是你的大胖子!!!</p>",true);

        //添加附件
        helper.addAttachment("头像",new File("/home/zhaoli/Desktop/1.jpeg"));
        helper.addAttachment("头像2",new File("/home/zhaoli/Desktop/1.jpeg"));
        //设置接受人和发送人
        helper.setTo("1191599851@qq.com");
        helper.setFrom("1191599851@qq.com");

        mailSender.send(mimeMessage);

    }

三、定时任务

TaskScheduler 	任务调度程序
TaskExecutor	任务执行者

@EnableScheduling //开启定时功能的注解
@Scheduled  //什么时候执行

Cron表达式
秒 分 时 日 月 周几
@Scheduled(cron = "0/2 * * * * ?")
Cron表达式范例:

                 每隔5秒执行一次:*/5 * * * * ?

                 每隔1分钟执行一次:0 */1 * * * ?

                 每天23点执行一次:0 0 23 * * ?

                 每天凌晨1点执行一次:0 0 1 * * ?

                 每月1号凌晨1点执行一次:0 0 1 1 * ?

                 每月最后一天23点执行一次:0 0 23 L * ?

                 每周星期天凌晨1点实行一次:0 0 1 ? * L

                 在26分、29分、33分执行一次:0 26,29,33 * * * ?

                 每天的0点、13点、18点、21点都执行一次:0 0 0,13,18,21 * * ?
@SpringBootApplication
@EnableScheduling //开启任务调度程序的注解
public class TaskDemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(TaskDemoApplication.class, args);
    }

}
@Service
public class ScheduledService {
	//表示该方法每隔两秒执行一次
    @Scheduled(cron = "0/2 * * * * ?")
    public void hello(){
        System.out.println("hello,你被执行了");
    }
}
SpringBoot系列:Spring Boot集成定时任务Quartz 首先定义定时具体执行逻辑Job,创建类QuartzJob1,这里集继承QuartzJobBean实现executeInternal即可,该方法即定时执行任务逻辑,这里简单打印了下当前时间。@Override然后创建QuartzConfig,接着定义JobDetail,JobDetail由JobBuilder构建,同时关联了任务QuartzJob1。@Bean。 阅读详情

相关推荐

SpringBoot实战项目学习(12)——集成Quartz定时任务

文章目录项目结构pom.xml什么是Quartz通用类ApiResponse实体类entityJobAndTrigger任务与触发器JobForm定时任务详情Job类项目Job接口Job实现类HelloJobJob实现类TestJob持久化层JobMapperxml文件JobMapper.xmlservice层JobService接口实现类JobServiceImpl工具类JobUtil前端页面job.html测试 使用SpringBoot集成Quartz定时任务 基于GitHub项目xkcoding/*

Felix_hyfy的博客 1037

任务调度--SpringTask // 分布式任务调度--Xxl-Job

分布式任务调度

Peng_zhj的博客 3689

Claude code-review 插件深度解析:AI 驱动的智能代码审查系统

Claude Code Review 插件深度解析:AI 驱动的智能代码审查系统 该插件通过多 Agent 并行工作方式自动审查 PR,采用置信度评分机制(80+分保留)过滤误报,确保高质量反馈。核心功能包括: 5个专业化 Agent 并行审查(规范合规性、bug检测、历史分析等) 8步工作流程:从资格检查到 GitHub 评论发布 创新性置信度评分系统(0-100分),严格过滤7类误报 结合 CLAUDE.md 规范和历史 PR 评论实现一致性审查 技术亮点: 多 Agent 架构(Haiku/Sonne

虚心若愚 2264

Spring定时任务的几种实现

java定时任务

weixin_43803387的博客 4798

洪水风险图制作全流程:HEC-RAS 与 ArcGIS 的耦合应用

本文系统介绍HEC-RAS水动力模拟软件在水利工程中的应用技术。内容涵盖:1)软件理论与安装;2)一维地形数据导入与河网构建;3)恒定流/非恒定流计算及模型调试要点;4)构筑物建模技术(桥梁、堰闸等);5)二维水动力模拟与溃坝分析;6)洪水风险图绘制。重点讲解水面线调试、糙率选取、报错分析等实操难点,通过案例教学实现从基础到工程应用的全流程技术掌握。该培训适用于防洪评价、河道治理等水利工程数值模拟需求。

2403_89974123的博客 1050

理解ADC:为什么需要抗混叠滤波器?

本文介绍 ADC 的混叠现象,引出抗混叠滤波器,并介绍一种开关电容滤波器,它具有很小的增益过渡带。

疯狂的运放 5939

Spring任务调度-TaskScheduler

1、任务调度接口TaskScheduler提供了多种方法来调度将来某个时间点要运行的任务。 2、触发器Trigger实现PeriodicTrigger 和 CronTrigger。 3、@Scheduled注解创建定时任务 4、@Async注解异步方法执行,value属性指定任务执行器。 5、task:scheduler、task:executor创建调度器和执行器...

weixin_40017062的博客 6914

STM32H7多通道ADC数据采集实战:CubeMX配置ADC1/2/3+DMA/BDMA+Cache避坑全记录

本文详细解析了STM32H7多通道ADC数据采集的实战配置,涵盖CubeMX中ADC1/2/3与DMA/BDMA的协同设置及Cache一致性处理。通过硬件架构分析、DMA优化技巧和Cache避坑指南,帮助开发者实现高精度数据采集,适用于电机控制、环境监测等嵌入式系统。

weixin_28744613的博客 292

SpringTask——任务调度框架

​ Spring Task是Spring框架提供的任务调度工具,可以按照约定的时间自动执行某个代码逻辑。

zyxzyx666的博客 2043

从零到一:Bioconductor新手入门与R包安装实战

本文详细介绍了Bioconductor在生物信息学中的重要性及其R包安装实战指南。从环境准备到BiocManager的使用,再到常见问题排查,帮助新手快速掌握这一强大工具。特别推荐org.Hs.eg.db等核心工具包,助力基因注释和功能分析,提升研究效率。

weixin_29061041的博客 418

深入解析雪球网股票行情数据爬取:基于WebSocket与API的实时数据获取技术实践

本文详细介绍了如何使用Python爬虫技术获取雪球网的股票行情数据,涵盖了WebSocket实时数据连接和RESTful API接口调用两种主要技术方案。完整的WebSocket客户端,支持实时行情订阅和数据处理功能丰富的API客户端,支持多种数据类型的获取数据存储和管理系统,使用SQLite进行数据持久化实时监控和预警系统,支持自定义预警规则技术指标计算,提供基本的数据分析功能。

2201_76125261的博客 1255

Spring实现任务调度的基本配置

Spring集成Quartz实现任务调度

qq_49194786的博客 499

代谢组数据分析(二十一):通过MetaboAnalystR标准化构建sPLSDA预测模型

本文介绍了如何使用R语言中的MetaboAnalystR包和mixOmics包进行代谢组学数据的标准化和sPLSDA分析。MetaboAnalystR包用于数据预处理,包括数据初始化、清洗、补足、过滤和标准化等步骤,以确保数据质量。mixOmics包则用于sPLSDA分析,通过Lasso惩罚进行变量选择,并建立分类模型。文章详细说明了安装和加载相关R包的步骤,并提供了数据导入和预处理的代码示例。最后,强调了数据预处理的重要性,以确保后续分析的准确性和可靠性。

专注生信领域 2426

学习在IDEA中使用SpringBoot(十二)Spring Boot 与任务

一. 异步任务 在主类添加@EnableAsync 开启异步注解功能 在service添加@Async 二. 定时任务 在主类@EnableScheduling 开启基于注解的定时任务 在service添加 @Scheduled 三. 邮件任务 导入依赖 <dependency> <groupId>org.springframework...

qq_41884677的博客 253

【踩坑记录】colmap中的相机位姿的坐标系定义及其可视化结果的隐含转换

1 坐标系定义及转换   首先介绍一下世界坐标系和相机坐标系之间的转换,它们之间是存在一个转换关系的。现假设空间中一点X,它在相机坐标系下的坐标是Xcamera,在世界坐标系下的坐标是Xworld。假设它通过R和t实现从相机坐标系到世界坐标系之间的转换: Xworld = RXcamera + t   那么,由上式,我们可以推得从世界坐标系向相机坐标系的转换关系(RT=R-1,所以通常直接使用RT即可): Xcamera = RTXworld - RTt   所以,两个坐标系之间的转换,需要看其具体

zeeq的博客 2万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【Spring Boot 2.0学习之旅-10】SpringBoot整合定时任务和异步任务处理

第十章 SpringBoot整合定时任务和异步任务处理 10-1 SpringBoot定时任务schedule讲解 1.定时器比较 什么是定时任务,使用场景 ? 比如八月十五,定时任务会轮询,加载到任务区里面,去检测 比如电商系统,下单量、访客、交易量,用于数据分析 某个时间定时处理某个任务 发邮件、短信等 消息提醒 订单通知 统计报表系统 … 常见定时任务 Java自带的java.util.Timer类配置比较麻烦,时间延后问题,有些BUG Quartz框架: 配置更简单,xml或者注解适合分布式或

Mind_programmonkey的博客 866

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

springboot个人学习任务挑战系统 学习助手软件设计与实现

前端页面数据处理传输以及页面展示使用Vue技术 采用B/S架构,使用Maven作为项目管理工具,使用Springboot+Mybatis做整合开发 ,springboot个人学习任务挑战系统 学习助手软件设计与实现采用的开发工具:IntelliJ IDEA,VScode;数据库管理软件:Navicat;开发技术框架:MyBatis,Spring Boot,Vue;使用Mysql数据库构建数据库表开发步骤;(1) 创建好数据库并导入,

QQ_402205496的博客 638

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

基于Springboot的学习互助辅助系统任务书

本文设计并实现基于SpringBoot的学习互助辅助系统,旨在解决传统学习管理系统功能单一、互动性差等问题。系统采用前后端分离架构,前端使用Vue.js,后端基于SpringBoot框架,数据库选用MySQL。主要功能包括:用户端的学习资源管理、个性化推荐、互动交流;管理员端的用户管理、资源维护等。研究重点在于提升学习管理效率、促进个性化学习、推动教育信息化发展。系统技术指标要求响应时间在2秒内,页面加载不超过3秒。开发流程涵盖需求分析、系统设计、编码实现到测试优化等阶段,预计2024年11月至2025年5

laojin1234的博客 569

springboot学习之路之定时任务使用简要

在这里插入图片描述

weixin_43965937的博客 141

springboot学习——任务相关

文章目录task一、异步任务二、定时任务三、邮件任务 task 一、异步任务 在Java应用中,绝大多数情况下都是通过同步的方式来实现交互处理的;但是在处理与第三方系统交互的时候,容易造成响应迟缓的情况,之前大部分都是使用多线程来完成此类任务,其实,在Spring 3.x之后,就已经内置了@Async来完美解决这个问题。 在主配置类上标注@EnableAsync开启异步支持 在需要异步运行的...

qq_36730158的博客 329

Spring Boot学习之任务学习【异步、定时、邮件】

查看自动配置类:MailSenderAutoConfiguration。进入到其pom文件,可以发现其依赖中存在。ctrl+鼠标左键,点击。

缘友一世的博客 767

【SpringBoot学习笔记 十二】SpringBoot异步任务、定时任务、邮件任务

之前两篇Blog都是SpringBoot使用层面上的实践,拦截器和异常处理。今天这篇Blog也一样,从使用实践层面上看看SpringBoot给我们封装了什么,能让我们便利的进行异步任务、定时任务、邮件任务的处理。在没有SpringBoot之前,这些功能可能的实现可能需要写很多代码才能实现,同时这篇Blog是SpringBoot实践层面的最后一篇,接下来我们进入集成层面的学习,学习SpringBoot集成Swagger、Dubbo以及SpringSecurity,做个小预告,集成内容学习完就开始SpringC

MaoLin Tian's Blog 672

[springboot学习笔记]SpringBoot与任务

SpringBoot与任务 一、异步任务 1.应用场景 在java应用中,绝大多数场景都采用的是同步的方式交互,如果有第三方进行交互,则可能会产生交互迟缓的的情况,这种时候就考虑使用多线程,而在Spring 3.x以后已经内置了异步 2.应用方式 采用注解@EnableAysnc、@Aysnc //注解于springapplication的main方法上,用于开启异步任务 @EnableAysnc //注解于希望异步处理的方法上 @Aysnc 应用场景 @Service public class Ays

叶落雨飘的博客 297

菜鸟学习SpringBoot——(八)定时任务

/*本人菜鸟一只,刚开始学习spring boot,按照导师给的学习计划整理的学习内容,希望能对和我一样是菜鸟,刚学习spring boot的童鞋有帮助。由于菜鸟一只,以下内容没有能力原创,里面的内容都是各种百度整理出来的(东拼西凑),所以作者数量太多,不方便注明,如有冒犯,我立马删帖。请各位大佬多多海涵!*/ 1、单体服务定时任务Spring Task 实现: 1、开启定时任务 启动类添加注解@EnableScheduling开启定时任务 2、添加定时任务 @Slf4j @Componen.

weixin_42110841的博客 242

SpringBoot框架学习(十一)——任务

文章目录十五、SpringBoot与任务异步任务定时任务邮件任务 十五、SpringBoot与任务 搭建环境,暂且只选择Web模块 异步任务 首先在Service层建立一个我们的异步任务 定时任务 邮件任务 ...

0117 423

【SpringBoot学习09】任务与邮件

文章目录1. 任务(Task)1.1 开启定时任务功能1.2 定义Bean2. 邮件2.1 导入springboot整合javamail的starter2.2 配置邮箱的登录信息2.3 使用JavaMailSender接口发送邮件2.4 发送网页正文及附件邮件 1. 任务(Task) pringboot整合第三方技术,今天我们来说说任务系统,其实这里说的任务系统指的是定时任务。定时任务是企业级开发中必不可少的组成部分,诸如长周期业务数据的计算,例如年度报表,诸如系统脏数据的处理,再比如系统性能监控报告,还有

一个正在努力学习的iter 933
上一篇: swagger学习笔记
下一篇: SpringBoot 整合 Redis
software_Manito
博客等级 码龄8年 6粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值