前言
实际开发中,大多数的service都是同步执行并返回的,但有些特殊情况,我们是不需要马上得到返回结果,例如:数据量较大的报表统计,可能会执行一两个小时,我们只需要开一个异步任务即可,spring也为我们提供了这样的方式,下面我们来看一看他的实现
参考项目:https://github.com/bigbeef/cppba-sample
开源地址:https://github.com/bigbeef
个人博客:http://blog.cppba.com
注意:框架采用spring-boot,配置和启动类就不列出了,需要了解的可以看下面的参考项目,下面只提供核心代码
StartService.java
1 | package com.cppba.service; |
StartController.java
1 | package com.cppba.controller; |
运行项目
项目启动,浏览器访问http://127.0.0.1:8080/start,控制台打印出一下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20No.1,hello!
No.10,hi!
No.7,hi!
No.8,hello!
No.6,hi!
No.10,hello!
No.7,hello!
No.5,hi!
No.1,hi!
No.6,hello!
No.4,hi!
No.8,hi!
No.5,hello!
No.3,hi!
No.9,hello!
No.4,hello!
No.2,hi!
No.9,hi!
No.3,hello!
No.2,hello!
很明显,程序并没有按照我们的调用顺序执行,说明我们的异步服务开启成功!