Продолжают ли выполняться методы контроллера Spring rest после отмены http-запроса - PullRequest
0 голосов
/ 29 апреля 2020

Предположим, у нас есть контроллер покоя пружины, который выполняет длительную операцию:

@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 клиент отменяет запрос, например Нажав «Отмена» на Почтальоне, закрыв веб-страницу в браузере, продолжит ли наш метод выполнять и записывать результаты в базу данных?

И отличаются ли асинхронные методы в этом отношении?

@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")
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...