spring boot(17)-@Async异步
来源:互联网 发布:博客下载软件 编辑:程序博客网 时间:2024/05/22 15:08
验证码的异步机制
上一篇讲过可以用邮件发验证码,通常我们在某网站发验证码时,首先会提示验证码已发送,请检查邮箱或者短信,这就是图中的1和3。然而此时查看邮箱或短信可能并没有收到验证码,往往要过几秒种才真正收到,这就是图中的2和4。2和4所消耗的时间比1和3要多,如果是同步,先执行4后执行3,那么这个请求将一直占用后台服务器。如果是异步,可以在第一时间通知用户已发送,并释放请求,而完全不用去管2和4的执行过程。如果2和4执行不成功怎么办?在验证码提示消息结尾,我们经常可以看到:”如果你在XXX秒钟之内没有收到验证码,请重发“
@Async和@EnableAsync 实现异步
控制层
@GetMapping("/async")public String test1() throws InterruptedException {helloService.task1();helloService.task2();System.out.println("释放请求");return "ok";}服务层
@Asyncpublic void task1() throws InterruptedException{Thread.sleep(2000);System.out.println("完成任务1");}@Asyncpublic void task2() throws InterruptedException{Thread.sleep(1000);System.out.println("完成任务2");}这是在一个控制层中调用了两个服务层的方法,任务1需要执行2秒时间,任务2需要执行1秒时间。和普通方法的唯一区别就是异步方法上加了@Async
上图是执行结果 ,这是同步。如果要让@Async异步生效还需要在配置类中开启异步,如下
@EnableAsync@SpringBootApplication再次执行
执行顺序和前面完全颠倒,在第一时间就释放了请求,任务2和任务1是同时执行的,但是任务2时间短,所以比任务1先执行完。
阅读全文
0 0
- spring boot(17)-@Async异步
- spring boot(17)-@Async异步
- Spring boot 使用异步@Async
- Spring Boot Async异步执行
- spring boot异步(Async)任务调度
- spring boot 集成Async 注解 异步处理
- 56. spring boot中使用@Async实现异步调用
- Spring Boot(十)使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- 56. spring boot中使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- spring boot 学习(十一)使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- Spring Boot中使用@Async实现异步调用
- spring boot中的异步执行(@EnableAsync,@Async)
- VR与游戏在未来有哪些融合的可能?
- Bonjour_mDNS_笔记
- MVC项目中使用百度地图
- Synchronized的使用以及实现原理
- 【STL】STL 一般总结
- spring boot(17)-@Async异步
- 学习-storm中的Grouping
- 关键字:native
- 第21课 inline内联(行内元素)
- 怎样将虚拟机VMware彻底删除
- 欢迎使用CSDN-markdown编辑器
- Python多线程--(4)queue对象
- 倒叙打印文件第二行的前100个大写字母
- 清华大学2001年机试-字符串排序-1066