Java 如何使用Spring boot构建非阻塞异步Web服务
我有一个使用SpringBoot设计的RESTfulWebService web服务相当繁重,因为它在启动时必须进行大量的数据库调用,而且一些其他端也需要进行繁重的IO操作来提供结果 我想让RESTfulAPI成为异步的,这样它就可以更具可伸缩性,并且不需要花费时间来提供结果 我在SpringAsync中查看了 我甚至实现了这一点,但我无法测试这是否是异步的 如果我想要像这样的东西怎么办 如果向url/all发出请求 它显示web服务正在即时处理结果,然后在所有处理完成后显示实际结果 这怎么可能 我也调查过这件事Java 如何使用Spring boot构建非阻塞异步Web服务,java,asynchronous,spring-boot,nonblocking,Java,Asynchronous,Spring Boot,Nonblocking,我有一个使用SpringBoot设计的RESTfulWebService web服务相当繁重,因为它在启动时必须进行大量的数据库调用,而且一些其他端也需要进行繁重的IO操作来提供结果 我想让RESTfulAPI成为异步的,这样它就可以更具可伸缩性,并且不需要花费时间来提供结果 我在SpringAsync中查看了 我甚至实现了这一点,但我无法测试这是否是异步的 如果我想要像这样的东西怎么办 如果向url/all发出请求 它显示web服务正在即时处理结果,然后在所有处理完成后显示实际结果 这怎么可能
在这个问题上没有代码,因为这是我面临的一个设计问题,因为如何解决它请与我忍受。谢谢你问了两个问题
wrk
,而不是从运行Java的服务器上运行
Public interface Callback<T>{
public void callWhenDone(T result);
//process the result in you implemenation
}
启动线程new MyThread(params,callbackimplementation)。Start()Spring Boot自动支持请求 最简单的杠杆方式如下:
public Callable<ResponseEntity<?>> myProcessingMethod () {
return () -> ResponseEntity.ok (myHeavyService.doTheWork ());
}
public Callable<ResponseEntity<?>> myProcessingMethod () {
return () -> ResponseEntity.ok (myHeavyService.doTheWork ());
}
public ResponseEntity<?> myProcessingMethod () {
myHeavyService.doTheWorkAsync ()
return ResponseEntity.ok ();
}