1 Star 0 Fork 0

NUT/Study

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
TestService 2.71 KB
一键复制 编辑 原始数据 按行查看 历史
@Service
@Scope("singleton")
public class TestService {
@Resource(name="jdbcTemplate")
private JdbcTemplate jdbcTemplate;
class Request{
String orderCode;
String serialNo;
CompletableFuture<Map<String,TaskorderDomain>> future;
}
LinkedBlockingDeque<Request> queue = new LinkedBlockingDeque<TestService.Request>();
public Map<String,TaskorderDomain> queryById(String id) throws InterruptedException, ExecutionException {
String uuid = UUID.randomUUID().toString();
CompletableFuture<Map<String,TaskorderDomain>> future = new CompletableFuture<>();
Request request = new Request();
request.orderCode = id;
request.serialNo = uuid;
request.future = future;
queue.add(request);
return future.get();
}
@PostConstruct
public void init() {
ScheduledExecutorService service = Executors.newScheduledThreadPool(1);
service.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
int size = queue.size();
if(size == 0) {
return;
}
List<Map<String,String>> params = new ArrayList<>();
ArrayList<Request> requests = new ArrayList<>();
for(int i = 0; i < size; i++) {
Request request = queue.poll();
Map<String,String> map = new HashMap<>();
map.put("orderCode", request.orderCode);
map.put("serialNo", request.serialNo);
params.add(map);
requests.add(request);
}
try {
List<Map<String,TaskorderDomain>> responses = queryById1("1");
for(Request request : requests) {
String serialNo = request.serialNo;
for(Map<String,TaskorderDomain> response : responses) {
String resSerialNo = response.get("serialNo").toString();
if(serialNo.equals(resSerialNo)) {
request.future.complete(response);
break;
}
}
}
} catch(Exception e) {
e.printStackTrace();
}
}
}, 0, 10, TimeUnit.MILLISECONDS);
}
public List<Map<String,TaskorderDomain>> queryById1(String id) throws InterruptedException, ExecutionException {
TaskorderDomain taskorderdomain = new TaskorderDomain();
taskorderdomain.setTaskorderid(id);
String sql="SELECT taskorderid, optsn, taskname, tasktext, tasktype, operator, tasktime, zzywid, zzbm, fileid, filename, remark, taskstat, creator, createorg, createrole, createtime FROM tb_aiops_taskorder WHERE taskorderid=:taskorderid";
List<TaskorderDomain> list = jdbcTemplate.query(sql, taskorderdomain, TaskorderDomain.class);
Map<String, TaskorderDomain> map = new HashMap<>();
map.put("1", list.get(0));
List<Map<String,TaskorderDomain>> li = new ArrayList<>();
li.add(map);
return li;
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/tjcumath/study.git
git@gitee.com:tjcumath/study.git
tjcumath
study
Study
master

搜索帮助