DeferredResult
的结果是由另外一个线程再稍后计算后返回给客户端的。DeferredResult
的线程执行器可由CompletableFuture
来定制。
同样我们在TaskService
定义我们的处理:
@Service
@Slf4j
public class TaskService {
public String deferredTask() {
log.info("+++++DeferredResult数据返回+++++");
return "result from DeferredResult";
}
}
在WebConfiguration
定义TaskExecutor
:
@Bean
public ThreadPoolTaskExecutor deferredTaskExecutor(){
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setThreadNamePrefix("deferred-task-"