Как сделать член класса НЕ разделяемым между потоками (2 сеанса браузера)

Я реализую веб-приложение. Я отправляю 1 ajax-запрос, чтобы вызвать 1000+ API-запросов и сохраняю результат в классе, когда он закончится.

Тем временем я отправляю еще один асинхронный запрос для опроса, если запрос был завершен, то возвращаю результат в браузер.

Проблема в том, что член класса совместно используется двумя браузерами, когда два пользователя отправляют запрос одновременно.

Вопрос в том, как сделать так, чтобы член класса НЕ разделялся между двумя вкладками, например, браузером Chrome

ПРИМЕЧАНИЕ: я использую Springboot Java для реализации.

Sample code
@RestController
public class RestController{
private CompletableFuture< CopyOnWriteArrayList< Object > > results; 
@Autowired
private RestService restService;

@PostMapping( "/sendRequest" )
private void sendRequests(....){
  results = restService.sendRequests(..); // save result to class member
}

@GetMapping("/pollResult")
private JsonResponse pollResult(..){
  //check if result is not null (async request)

return response;
}


}

a.html

ajax
{
url // send api request

}


another Ajax call to poll result every 5 seconds

0 ответов

Другие вопросы по тегам