java—如何在方法仍然完成时发送HTTPOK请求?

6tdlim6h  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(312)

我对多线程还是个新手,不知道如何实现它。我有这个spring应用程序,我想能够从控制器发送ok状态时,它被称为从 Postman 说,而在它调用的方法仍然在后台完成。我能问一下示例代码如何做到这一点吗?下面是我想使之异步的方法:

public void methodForAsynchronousTask(){
    restTemplate.exchange(url, method, requestEntity, String.class);
}

这是我的控制器:

@PostMapping("/")
public ResponseEntity<?> startOutage() {
    someClass.methodForAsynchronousTask();
    return new ResponseEntity<>(HttpStatus.OK);
}
5t7ly7z5

5t7ly7z51#

我会用一个 ExecutorService 在你的 someClass 实现,限制创建的线程数:

@Component
public class SomeClass {

  private ExecutorService executorService;
  private RestTemplate restTemplate;

  public SomeClass() {
    this.executorService = Executors.newFixedThreadPool(10);
    this.restTemplate = new RestTemplateBuilder().build();
  }  

  public someMethodForAsynchronousTask() {
    executorService.submit( () -> {
      restTemplate.exchange(url, method, requestEntity, String.class);
      .. // and whatever else
    });
  }
}

相关问题