SpringBoot异步任务和定时任务

SpringBoot实现异步任务以及定时任务 在绝大多数的java应用中,很多场景都是采用的是同步的方式交互,那么一旦如果有第三方进行交互,则很有可能就会产生交互延迟的问题,那么这种时候就得考虑使用多线程,但是在Spring3以后它就已经内置了异步任务供我们使用。 阅读详情

异步任务

异步任务主要用于处理处理时间长并且不需要返回结果的一些内容,比如,微信小程序中,有一个方法中间既有业务处理的一些逻辑代码又有订阅消息通知,如果这个订阅消息处理的时间是3s,那这个接口就需要等待3s才能给用户展示结果。我们不想让用户等待那么长时间,就可以使用异步任务。

1、在启动类上标注 @EnableAsync 表示开启基于注解的异步任务

@SpringBootApplication
@EnableAsync //开启异步任务
public class SpringBootWebRestfulcrudApplication {

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

}

2、创建一个Service的Impl(在这里不在创建service层接口了,直接创建service的impl)

@Service
public class AsyncServiceImpl {

    //@Async告诉Spring这是一个异步方法
    @Async
    public void asyncTest(){
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

3、使用controller调用此方法

@RestController
public class AsyncController {

    @Autowired
    AsyncServiceImpl asyncService;

    @PublicInterface
    @RequestMapping("/test/async")
    public String asyncTest(){
        asyncService.asyncTest();
        return "success";
    }
}

这样在调用此方法的时候不会被线程的睡眠3s影响,会立马给客户端返回结果。

定时任务

定时任务主要应用的场景是定时调用,比如做一个办公系统,每周一早上7点30分给所有员工发送一个邮件,告诉员工八点要开会,请员工准时参加会议。每月的账单通过邮件的形式发送给相关人员、数据监控等等。。

1、在启动类上标注 @EnableScheduling 表示开启基于注解的定时任务

@SpringBootApplication
@EnableScheduling//开启定时任务
public class SpringBootWebRestfulcrudApplication {

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

}

2、创建一个Service的Impl(在这里不在创建service层接口了,直接创建service的impl)

@Service
public class AsyncServiceImpl {

    /**
     * 开启定时任务
     * cron:定时规则,
     * cron表达式
     * 0 * * * * MON-SAT:表示周一到周五没一分钟的第0秒调用此方法
     */
    @Scheduled(cron = "0 * * * * MON-SAT")
    public void scheduled(){
        System.out.println("----------------");
    }
}

这个方法是系统自动调用的,不需要通过controller层来调用。只要满足了cron表达式即可调用。cron表达式有很多规则,用到的时候自行百度即可。

SpringBoot整合定时任务和异步任务(SpringBoot 系列-五) SpringBoot整合定时任务和异步任务 一、SpringBoot定时任务schedule概述 定时任务方案: 1.Java自带的java.util.Timer类 timer:配置比较麻烦,时间延后问题 timertask:不推荐 2、Quartz框架 配置更简单 xml或者注解 3、SpringBoot使用注解方式开启定时任务 ... 阅读详情

相关推荐

SpringBoot整合定时任务和异步任务处理

SpringBoot定时任务schedule和常见定时任务区别 1、常见定时任务 Java自带的java.util.Timer类 timer:配置比较麻烦,时间延后问题 timertask:不推荐 2、Quartz框架:配置更简单 xml或者注解 3、SpringBoot使用注解方式开启定时任务 1)启动类里面 @EnableScheduling开启定时任务,自动扫...

m0_37657725的博客 679

SpringBoot-21-异步&定时任务

异步任务&定时任务   异步任务   异步任务知识介绍 在多线程时,后台执行多个任务,我们需要同步等待。此时前台不会给出任何响应,可以采用多线程 的方式解决这个问题。 SpringBoot采用异步注解的方式来解决这个问题,让我们在同步等待的时候,响应前台页面,无需 等待,后台代码执行依旧 实现异步任务        在SpringBoot实现异步任务很简单,在同步等待的任务中添加@Async注解,然后在SpringBoot添加@EnableAsync 代码实现 在com.liang.se

paiidds的博客 3750

八十、 Springboot整合异步任务和定时任务

异步任务:其实就是一个很特别的方法,这个方法没有返回值(也可以有返回值,后面会说的),但是方法内部的逻辑会耗费很多时间!例如,用户请求每次到controller,要执行到这个异步方法的时候,我们只需要命令一个空闲状态的线程去执行它即可,由于没有返回值不影响后续代码的运行,controller直接去执行后续的代码。这样可以极为迅速的响应用户,用户体验非常好。

微信号:RunsenLiu 1641

异步,定时,分页简介

异步,定时任务

weixin_59799119的博客 353

YOLO-FastestV2从零部署到移动端推理实战手册

本文详细介绍了YOLO-FastestV2从零开始的完整部署流程,涵盖环境搭建、模型训练、格式转换及移动端部署。通过实战步骤,指导开发者将这一轻量级目标检测模型成功部署到Android设备,实现实时推理。文章重点解析了PyTorch到NCNN的模型转换与优化,助力移动端AI应用开发。

l1k9j8h7g6的博客 668

常见js手撕题及算法总结

设计一个lazyMan,实现以下功能: LazyMan(‘Tony’); // Hi I am Tony LazyMan(‘Tony’).sleep(10).eat(‘lunch’); // Hi I am Tony // 等待了10秒… // I am eating lunch LazyMan(‘Tony’).eat(‘lunch’).sleep(10).eat(‘dinner’); // H...

没有名字适合我的博客 3176

异步任务和定时任务

定时任务,可以帮助我们做一些脚本,例如抢票——(合法)定时任务,方便我们做一些计划,更准确异步任务,使得我们的代码更快捷的运行。

qq2844509367的博客 816

matinal:SAP ABAP 关于sftp的发送接收源代码

如果您将目标系统的凭据存储在该 RFC 连接中,您可以安排程序并将其作为后台作业运行:凭据将从 SM59 配置中获取,并且在文件传输期间不会提示您输入它们。这尤其适用于安全问题:您有责任为您的编码添加安全功能,并相应地配置您的系统(例如,保护您的系统免受病毒侵害)。注意:在创建自己的程序时,请特别注意示例代码中以“@CUSTOMER”开头的注释,因为您需要实现自己的逻辑。本说明为您提供示例编码以支持您创建自己的程序。在 STRUST 事务中,您维护了一个 PSE 并导入了您要发送的文件的最终收件人的证书。

matinal 當冬夜漸暖 。公众号:matinal 1333

SpringBoot使用Schedule实现异步执行定时任务(多线程)

Scheduling 本身是单线程机制,要想多个定时任务并行执行,需要使用 @Async 注解采用异步执行方式。 在Spring中,基于@Async标注的方法,称之为异步方法,这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。 启动类添加@EnableScheduling开启定时任务,添加@EnableAsync开启异步支持 @SpringBootApplication @EnableWebMvc @EnableAsync @EnableSchedulin

AlbenXie的博客 5331

【人工智能】你知道什么是DeepSeek吗?你有去了解过DeepSeek吗?新手要入门DeepSeek的必经之路——初识DeepSeek

【人工智能】初识DeepSeek 详细介绍DeepSeek以及DeepSeek-R1

蒙奇D索大的博客 3350

【正点原子STM32连载】第六十章 串口IAP实战:从Bootloader到APP的无缝升级

本文以正点原子STM32F103开发板为例,详细讲解了串口IAP(在应用编程)技术的实现原理与实战步骤。内容涵盖Bootloader与APP的分工、FLASH空间规划、核心代码解析以及Ymodem协议的应用,旨在帮助开发者掌握通过串口为嵌入式设备实现远程固件升级的关键技术,提升产品维护与迭代效率。

weixin_29161719的博客 445

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

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

Mind_programmonkey的博客 866

从养虾到退坑:OpenClaw 卸载不留残留,一步到位

文章摘要: 本文提供OpenClaw软件的完整卸载指南,适用于Windows、macOS和Linux系统。内容包含卸载前的数据备份步骤(配置文件、日志、插件列表),以及详细的卸载脚本。Windows版通过批处理文件删除程序文件、注册表项和环境变量;macOS/Linux版则提供shell脚本,涵盖服务停止、软件包卸载、配置清理等步骤。特别强调要删除所有用户数据(包括多用户环境),确保系统无残留。文末建议重启计算机以使更改生效,实现"一步到位"的彻底卸载。

一键难忘的博客 298

SpringBoot整合定时任务和异步任务

文章目录SpringBoot整合定时任务和异步任务SpringBoot定时任务schedule讲解简介:讲解什么是定时任务和常见的定时任务区别什么是定时任务,使用场景常见定时任务 SpringBoot整合定时任务和异步任务 SpringBoot定时任务schedule讲解 简介:讲解什么是定时任务和常见的定时任务区别 什么是定时任务,使用场景 某个时间定时处理某个任务 发邮件、短信等 消息提醒 订单通知 统计订单报表系统 … 常见定时任务 java自带的Java.util.Timer类配置比较麻烦,时

ruan_luqingnian的博客 846

【安卓逆向】python版本 sha源码

免责声明本文内容仅供学习交流使用,严禁用于商业和非法用途。抓包数据、敏感网址以及数据接口已进行脱敏处理。 注:如有引用,请标注文章地址!!!!!!!

Coodekun的博客 816

Transformer 时间序列预测实战

Transformer 时间序列预测实战

机器学习深度学习业余选手 743

boot定时任务开启和关闭 spring_SpringBoot中的定时任务的同步与异步你确定真的知道?...

定时任务调度功能在我们的开发中是非常常见的,随便举几个例子:定时清除一些过期的数据,定时发送邮件等等,实现定时任务调度的方式也十分多样,本篇文章主要学习各种实现定时任务调度方式的优缺点,以便为日后选择的时候提供一定的参考。本篇要点介绍Timer实现定时任务。介绍ScheduledExecutorService实现定时任务。介绍SpringBoot使用SpringTask实现定时任务。介绍Sprin...

weixin_39719042的博客 254

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

SpringBoot 异步任务和定时任务 配置及使用

SpringBoot @EnableAsync @EnableScheduling

一只憨憨猿 1969

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

四:SpringBoot-定时任务和异步任务的使用方式

SpringBoot-定时任务和异步任务的使用方式1、定时任务2、同步和异步3、定时器的使用3.1 定时器执行规则注解3.2 定义时间打印定时器3.3 启动类开启定时器注解4、异步任务4.1 编写异步任务类4.2 指定异步任务执行的线程池4.3 启动类添加异步注解 1、定时任务 按照指定时间执行的程序。 使用场景 数据分析 数据清理 系统服务监控 2、同步和异步 同步调用 程序按照代码顺序依次执行,每一行程序都必须等待上一行程序执行完成之后才能执行; 异步调用 顺序执行时,不等待异步调用的代码块

爱是与世界平行 2235

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Spring Boot 整合定时任务和异步任务处理

1.定时任务 Spring Boot 使用注解方式开启定时任务,分为3步 1)启动类里面加上 @EnableScheduling 注解开启定时任务,自动扫描标记了@Scheduled 注解的方法 @SpringBootApplication @EnableScheduling public class BaseProjectApplication { publ...

weixin_30783629的博客 133

springboot实现异步任务,定时任务和邮件发送

目录 创建springboot工程并导入依赖 1.异步任务 2.定时任务 3.邮箱发送 创建springboot工程并导入依赖 <!--javax.mail--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail&l

weixin_46102505的博客 1160

springboot:定时任务和异步任务的使用方式

springboot:定时任务和异步任务的使用方式 一、定时任务 1.基本概念:安装指定时间执行的程序 2.使用场景 数据分析 数据清理 系统服务监控 二、同步和异步 1.基本概念 同步调用:程序安装代码顺序依次执行,每一行程序必须等待上一行程序执行完之后才能执行 异步调用:顺序执行时,不等待异步调用的代码块返回结果就执行后面的程序。 2.使用场景 短信通知 邮件发送 批量数据入缓存 三、springboot使用定时器 1、定时器执行规则注解 @Scheduled(fixedRate = 5000)

拒绝熬夜啊的博客 697

SpringBoot核心特性——异步任务和定时任务那些事

Async本质,其实就是SpringBoot默认给我们封装好了一个线程池,所有Spring代理对象的@Async修饰方法,都会被扔到线程池中执行,从而不影响Http请求线程处理逻辑。

他很懒,但也在努力的生活着 524
上一篇: SpringBoot使用JavaMailSender发送邮件
下一篇: git添加提交以及查看状态
与黑夜为伍
博客等级 码龄7年 19粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值