取消http请求后,Spring rest控制器方法是否继续执行

时间:2020-04-29 16:14:14

标签: spring spring-restcontroller

假设我们有一个弹簧托控制器,可以进行长时间的操作:

@PostMapping(path = "someLongOperation")
public ResponseEntity<?> doOp(@RequestBody MyBody) {
   ...do A
   ...do B //client cancels request while execution is at this step
   ...do some calculations
   ...save result to database
   return ResponseEntity.ok("my response body")
}

然后,在步骤B,客户端取消请求。在Postman上按“取消”,在浏览器上关闭网页,我们的方法是否仍将继续执行并将结果写入数据库?

在这方面异步方法是否有所不同?

@PostMapping(path = "someLongOperation")
public Callable<ResponseEntity<?>> doOp(@RequestBody MyBody) {
   return () -> {
      ...do A
      ...do B //client cancels request while execution is at this step
      ...do some calculations
      ...save result to database
      return ResponseEntity.ok("my response body")
  }
}

0 个答案:

没有答案
相关问题