Как сделать член класса НЕ разделяемым между потоками (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