java - 如何使类成员不在线程之间共享(2个浏览器会话)
问题描述
我正在实现一个 Web 应用程序。我发送 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;
}
}
一个.html
ajax
{
url // send api request
}
another Ajax call to poll result every 5 seconds
解决方案
推荐阅读
- fortran - 使用 GCC 运行的覆盖率不会产生数据
- java - 线程“主”java.lang.NoSuchMethodError 中的异常:'javax.persistence.Index[] javax.persistence.Table.indexes()'
- ios - 从标签栏关闭时导航栏中的搜索控制器出现问题
- java - 比较JAVA中字符串内的数值
- azure-devops-rest-api - 从 azure devops 工件下载数据
- c# - 使用 C# 将签名附加到 PDF
- ios - 如何允许来宾 Amplify 用户使用 AWS Amplify iOS 开发工具包从我的 S3 存储桶下载文件?
- r - MX Linux 19.4 中的 R 包 tidyverse
- java - 如何删除链表的第一个节点?
- c++ - 无法编译官方 Quake 2 源代码