代码拉取完成,页面将自动刷新
@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;
}
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。