广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Springboot 异步任务和定时任务的异步处理
  • 370
分享到

Springboot 异步任务和定时任务的异步处理

2024-04-02 19:04:59 370人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1 前言2 异步任务设置3 定时任务配置4 总结1 前言 在 SpringBoot 中,异步任务和定时任务是经常遇到的处理问题方式,为了能够用好这两项配置,不干扰正常的业务,需要

1 前言

SpringBoot 中,异步任务和定时任务是经常遇到的处理问题方式,为了能够用好这两项配置,不干扰正常的业务,需要对其进行异步化配置。怎么设置合理的异步处理线程就是其核心和关键。

2 异步任务设置

项目中使用异步任务是经常遇到的解决问题方式,通常是为减少请求的等待时间,将业务处理进行异步后台处理,可以改善用户的体验,增加系统的吞吐量。

在 springboot 中开启异步任务,也是十分的简单,只需要两步操作:

  • 1 开启 @EnableAsync 注解。
  • 2 在需要异步处理的方法上添加 @Async

需要说明的是异步执行的方法可以有返回值,但是必须是 Future,这里和多线程 submit 的方式提交任务,获取处理结果的方式。

到此为止,异步任务的配置和使用就结束了。异步任务使用的也是多线程线程池技术,默认情况下采用的是 SimpleAsyncTaskExecutor 来实现,但是自己的命运怎么能交到他人手上呢,总觉得不太踏实,异步任务怎么才能使用自定义的线程池去实现呢,这是一个好问题,答案也是有的,那就是 AsyncConfigurer。这是一个接口,需要实现 getAsyncExecutor 方法来获取一个线程池,如果需要异常信息的抓取,则在实现一个方法 getAsyncUncaughtExceptionHandler 即可。

具体的代码如下所示:

异步任务执行结果如下,可以说明异步任务的线程池配置已经生效:

3 定时任务配置

定时任务在项目开发中可以说是很常用的配置,作为业务功能的补偿而存在,有这举足轻重的地位,对于定时任务的使用,可以分为固定时间和 crontab 表达式,在实现的工具上,有 spring 自带的 @Schedule,在单体项目中应用广泛,不需要借助其它的平台和额外的配置,对于简单的任务来说已经足够,但是对于分布式系统来说,就有点儿力不从心了,这时就诞生了 quartz、 elastic-job 和 xxl-job 等,其中 xxl-job 尤为出色。在这里,只介绍一下 @Schedule 的使用:

  • 1 全局开启 @EnableScheduling 注解。
  • 2 在需要执行的任务上添加 @Schedule 注解,并指定执行方法,是固定执行还是采用 cron 表达式。

在实际的项目开发中,crontab 表达式应用还是很广泛的,这里给一下 cron 表达式生成地址,以供参考:

https://www.beJSON.com/othertools/cron

和异步任务执行一样,定时任务的执行也是有自己的异步任务线程池,这里需要实现的接口为 SchedulinGConfigurer ,实现其 configureTasks 方法即可:

在一切配置文件做好后,运行后可以看出定时任务的线程池配置已经生效:

4 总结

文中讲述了异步任务处理的配置和定时任务的异步化配置,在后续的文章中将继续分享 springboot 配置相关的内容,欢迎大家关注。

到此这篇关于Springboot 异步任务和定时任务的异步处理的文章就介绍到这了,更多相关Springboot异步处理内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Springboot 异步任务和定时任务的异步处理

本文链接: https://www.lsjlt.com/news/147911.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Springboot 异步任务和定时任务的异步处理
    目录1 前言2 异步任务设置3 定时任务配置4 总结1 前言 在 Springboot 中,异步任务和定时任务是经常遇到的处理问题方式,为了能够用好这两项配置,不干扰正常的业务,需要...
    99+
    2022-11-13
  • Springboot异步任务和定时任务如何处理
    本文小编为大家详细介绍“Springboot异步任务和定时任务如何处理”,内容详细,步骤清晰,细节处理妥当,希望这篇“Springboot异步任务和定时任务如何处理”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1...
    99+
    2023-06-30
  • springboot定时任务和异步任务怎么实现
    这篇文章主要介绍“springboot定时任务和异步任务怎么实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“springboot定时任务和异步任务怎么实现”文章能帮助大家解决问题。异步任务简单案例...
    99+
    2023-06-27
  • SpringBoot2如何使用定时任务和异步任务
    这篇文章给大家分享的是有关SpringBoot2如何使用定时任务和异步任务的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、定时任务1、基本概念按照指定时间执行的程序。2、使用场景数据分析数据清理系统服务监控二、...
    99+
    2023-06-02
  • 详解Springboot中的异步、定时、邮件任务
    目录一、异步任务1、编写一个类AsyncService 2、编写一个AsyncController类3、开启异步二、邮件任务1、引入依赖2、配置mail3、测试三、定时任务1、编写一...
    99+
    2022-11-12
  • SpringBoot 实现异步任务
    异步任务 一、使用背景二、同步任务的优缺点2.1 优点2.2 缺点2.3 总结 三、异步任务的优缺点3.1 优点3.2 缺点3.3 总结 四、Spring Boot 实现异步任务4.0...
    99+
    2023-10-09
    spring boot java spring
  • springboot实现异步任务
    本文实例为大家分享了springboot实现异步任务的具体代码,供大家参考,具体内容如下 1.什么异步任务 同步:一定要等任务执行完了,得到结果,才执行下一个任务。 异步:不等任务执...
    99+
    2022-11-12
  • springboot中swagger、异步/定时/邮件任务的问题
    目录1、SpringBoot:集成Swagger终极版1.1、Swagger简介1.2、SpringBoot集成Swagger1.3、配置Swagger1.4、配置扫描接口1.5、配...
    99+
    2022-11-12
  • Springboot任务之异步任务的使用详解
    02: 定时任务 03: 邮件任务 一、SpringBoot--异步任务  1.1 什么是同步和异步 同步是阻塞模式,异步是非阻塞模式。 同步就是指一个进...
    99+
    2022-11-12
  • Springboot任务之异步任务的示例分析
    这篇文章将为大家详细讲解有关Springboot任务之异步任务的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、SpringBoot--异步任务 1.1 什么是同步和异步同步是阻塞模式...
    99+
    2023-06-15
  • Springboot中异步、定时、邮件任务的示例分析
    这篇文章主要介绍Springboot中异步、定时、邮件任务的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、异步任务1、编写一个类AsyncService异步处理还是非常常用的,比如我们在网站上发送邮件,后...
    99+
    2023-06-25
  • celery异步定时任务订单定时回滚
    目录订单回滚控制执行(多少时间后执行)celery异步定时任务订单回滚 用celery异步,定时任务。可以设置:如果下单15分钟后没有支付,则取消订单。做反向操作 控制执行(多少时间...
    99+
    2022-11-10
  • springboot怎么实现异步任务
    这篇“springboot怎么实现异步任务”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“springboot怎么实现异步任务...
    99+
    2023-06-29
  • Springboot中异步任务的示例分析
    小编给大家分享一下Springboot中异步任务的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!异步任务启动类@MapperScan("com....
    99+
    2023-06-17
  • SpringBoot异步任务及并行事务实现
            上一篇介绍了原生Java如何实现串行/并行任务,主要使用了线程池 + Future + CountDownLatch,让主线程等待子线程返回后再向下进行。而在SpringBoot中,利用@Async和AOP对异步任务提供了更...
    99+
    2023-09-05
    java spring boot mysql
  • Java SpringBoot @Async如何实现异步任务
    本篇内容介绍了“Java SpringBoot @Async如何实现异步任务”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2023-07-04
  • golang定时任务中异步回调怎么实现
    在golang中,可以使用goroutine和channel来实现异步回调。 下面是一个示例代码: package main im...
    99+
    2023-10-22
    golang
  • PHP实现异步定时多任务消息推送
    在 PHP 中实现异步定时多任务消息推送的方式有多种,其中一种常用的方式是使用异步任务队列。 以下是一个简单的步骤: 安装和配置消息队列服务(如 RabbitMQ、Redis 等)。...
    99+
    2023-05-15
    PHP定时多任务消息推送 PHP多任务消息推送 PHP消息推送
  • java异步处理任务的方法是什么
    在Java中,有以下几种方法可以实现异步处理任务:1. 使用Thread类:可以通过创建一个新的Thread对象,并在其内部实现异步...
    99+
    2023-09-16
    java
  • golang异步任务处理的方法是什么
    在Go语言中,可以使用goroutine和channel来实现异步任务处理。 Goroutine:Goroutine是Go语言中轻...
    99+
    2023-10-27
    golang
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作