(一)异步任务

异步任务的需求在实际开发场景中经常遇到,Java实现异步的方式有很多,比如多线程实现异步。在SpringBoot中,实现异步任务只需要增加两个注解就可以实现。当前类添加@Async注解,启动类添加@EnableAsync

编写一个service,AsynService,让这个服务暂停3秒后再输出数据

@Service
public class AsynService {@Asyncpublic void async(){try {Thread.sleep(3000);System.out.println("执行结束");} catch (InterruptedException e) {e.printStackTrace();}}
}

编写controller,调用这个服务类

@RestController
public class IndexController {@Autowiredpublic AsynService asynService;@RequestMapping("/index")public String  asynctask(){asynService.async();return "async task";}
}

运行后在浏览器中访问http://localhost:8080/index ,会发现由于开启了异步,浏览器中会先输出async task,过了三秒后控制台才会输出执行结束。

(二)定时任务

我在之前的秒杀开源项目中已经使用过定时任务,当时的场景时,每隔1分钟去轮询数据库查询过期的商品。定时任务的应用范围很广,比如每天12点自动打包日志,每天晚上12点备份等等。 在SpringBoot实现定时任务也只需要两个注解:@Scheduled和@EnableScheduling 和前面一样,@Scheduled用在需要定时执行的任务上,@EnableScheduling用在启动类上。 首先来编写定时任务类:

@Service
public class ScheduleService {@Scheduled(cron = "0/10 * * * * ? ")public void sayHello(){System.out.println("hello");}
}

@Scheduled注解中需要加入cron表达式,用来判断定时任务的执行时间,这里表示每10秒执行一次。

然后在启动类中加上注解@EnableScheduling。 运行项目,会发现每隔十秒会输出一条hello。

来源:https://www.tuicool.com/articles/6Bf67zE

springboot异步注解_SpringBoot如何实现异步、定时任务?相关推荐

  1. SpringBoot(十四)_springboot使用内置定时任务Scheduled的使用(一)

    为什么使用定时? 日常工作中,经常会用到定时任务,比如各种统计,并不要求实时性.此时可以通过提前设置定时任务先把数据跑出来,后续处理起来更方便. 本篇文章主要介绍 springboot内置定时任务. ...

  2. async异步注解和aspect切面注解等注解的原理

    在我们使用spring框架的过程中,在很多时候我们会使用@async注解来异步执行某一些方法,提高系统的执行效率.今天我们来探讨下spring是如何完成这个功能的. 1.spring 在扫描bean的 ...

  3. Spring中解决事务以及异步注解失效

    Spring中解决事务以及异步注解失效 一.重现@Transaction失效的场景 有如下业务场景,新增订单后,自动发送短信,下面的代码在同一个类中: @Transaction public void ...

  4. Spring中异步注解@Async的使用、原理及使用时可能导致的问题

    前言 最近,很多同学碰到了下面这个问题,添加了Spring提供的一个异步注解@Async循环依赖无法被解决了,下面是一些读者的留言跟群里同学碰到的问题: 本着讲一个知识点就要讲明白.讲透彻的原则,我决 ...

  5. SpringBoot 2.0 集成 JavaMail ,实现异步发送邮件

    一.JavaMail的核心API 1.API功能图解 2.API说明 (1).Message 类: javax.mail.Message 类是创建和解析邮件的一个抽象类 子类javax.mail.in ...

  6. springboot服务调用超时_Spring Boot 异步请求和异步调用,一文搞定

    一.Spring Boot中异步请求的使用 1.异步请求与同步请求 特点: 可以先释放容器分配给请求的线程与相关资源,减轻系统负担,释放了容器所分配线程的请求,其响应将被延后,可以在耗时处理完成(例如 ...

  7. Spring : 异步注解 @EnableAsync 和 @Async

    文章目录 1.美图 2.概述 2.1 线程任务池配置 3. @EnableAsync 4.@Async 5.案例 5.1 任务类 5.2 带有返回值的方法如何使用@Async注解 1.美图 2.概述 ...

  8. 集群服务器下使用SpringBoot @Scheduled注解定时任务

    原文:https://blog.csdn.net/huyang1990/article/details/78551578 SpringBoot提供了 Schedule模块完美支持定时任务的执行 在实际 ...

  9. RocketMQ 实战-SpringBoot整合RocketMQ同步消息、异步消息、单向消息

    官方样例:https://gitee.com/apache/rocketmq/blob/master/docs/cn/RocketMQ_Example.md 1. 同步消息 producer向 bro ...

最新文章

  1. Drug Target Review | 筛选用于抗COVID-19的抗病毒化合物
  2. 深度学习入门指北——从硬件到软件
  3. 我来告诉你【Redis】入门 一
  4. python自动化任务_用Python实现真实世界任务的自动化
  5. jasmine.FunctionMatchers.toHaveBeenCalledWith的单步调试
  6. java socketchannel api,SocketChannel API
  7. Hive+LDAP+Sentry
  8. 64位 iee754_IEEE754浮点表示法详解
  9. AngularJS+Satellizer+Node.js+MongoDB-Instagram-01
  10. 配置Tomcat时server.xml和content.xml自动还原问题
  11. 吾有个怪习惯:看书时经常把ABC结构的词看成ACB
  12. 除了大家知道的navicat,再介绍两款免费的数据库连接工具
  13. 联想Y720,win10下安装双系统Ubuntu过程遇到的一些问题及解决方法
  14. Oracle ERP 模块
  15. linux开机自启动方法,Linux配置开机自启动
  16. oracle lob类型 删除,oracle中lob类型介绍
  17. CF Buns (01背包问题)
  18. 为什么数码相机可以拍出彩色照片?
  19. Android开发: 美化输入框EditText
  20. Kerberos (一) --------- Kerberos 部署

热门文章

  1. Vue安装npm长时间停留WARN deprecated request@2.88.2: request has been deprecated
  2. python安装numpy库用清华镜像_Mac下基于Anaconda通过清华镜像安装Tensorflow
  3. 两个html文件互相访问变量,访问一个js文件的变量上的HTML文件
  4. HTML和CSS常见问题整理
  5. pythonsvc_sklearn-SVC实现与类参数详解
  6. mysql获取当前节点的所有叶子节点_mssql sqlserver 如何获取一个叶子节点下所有子节点呢?...
  7. 计算机心得300,计算机实训总结计算机实训心得300
  8. sed搜索某行在行末追加_linux shell 用sed命令在文本的行尾或行首添加字符
  9. linux修改目录block信息,linux下文件操作inode,block的变化
  10. html 属于mvvm框架,mvvm模式和mvc的区别是什么?