From b726dc97538b7d4ba71fd06c14161017dd67c2b7 Mon Sep 17 00:00:00 2001
From: xubinbin <1323875150@qq.com>
Date: 星期三, 10 五月 2023 15:38:22 +0800
Subject: [PATCH] "@schedule"是Spring框架提供的一种定时任务执行机制,默认情况下它是单线程执行,项目中多次使用fixedRate按指定频率执行任务(不管前面任务是否已经完成),在同时执行多个定时任务时可能会出现阻塞和性能问题,为了解决这种单线程瓶颈问题,将定时任务的执行机制改为支持多线程
---
web_src/src/components/service/DeviceService.js | 47 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 43 insertions(+), 4 deletions(-)
diff --git a/web_src/src/components/service/DeviceService.js b/web_src/src/components/service/DeviceService.js
index fb66374..85d36f8 100644
--- a/web_src/src/components/service/DeviceService.js
+++ b/web_src/src/components/service/DeviceService.js
@@ -43,10 +43,10 @@
getAllDeviceListIteration(deviceList, currentPage, count, callback, endCallback, errorCallback) {
this.getDeviceList(currentPage, count, (data) => {
- if (data.list) {
- if (typeof (callback) == "function") callback(data.list)
- deviceList = deviceList.concat(data.list);
- if (deviceList.length < data.total) {
+ if (data.code === 0 && data.data.list) {
+ if (typeof (callback) == "function") callback(data.data.list)
+ deviceList = deviceList.concat(data.data.list);
+ if (deviceList.length < data.data.total) {
currentPage ++
this.getAllDeviceListIteration(deviceList, currentPage, count, callback, endCallback, errorCallback)
}else {
@@ -133,6 +133,45 @@
if (typeof (callback) == "function") callback(res.data)
}).catch(errorCallback);
}
+
+ getTree(deviceId, parentId, onlyCatalog, callback, endCallback, errorCallback) {
+ let currentPage = 1;
+ let count = 100;
+ let catalogList = []
+ this.getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback)
+ }
+
+ getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback) {
+ this.getTreeInfo(deviceId, parentId, onlyCatalog, currentPage, count, (data) => {
+ if (data.code === 0 && data.data.list) {
+ if (typeof (callback) == "function") callback(data.data.list)
+ catalogList = catalogList.concat(data.data.list);
+ if (catalogList.length < data.data.total) {
+ currentPage ++
+ this.getTreeIteration(deviceId, parentId, onlyCatalog, catalogList, currentPage, count, callback, endCallback, errorCallback)
+ }else {
+ if (typeof (endCallback) == "function") endCallback(catalogList)
+ }
+ }
+ }, errorCallback)
+ }
+ getTreeInfo(deviceId, parentId, onlyCatalog, currentPage, count, callback, errorCallback) {
+ if (onlyCatalog == null || typeof onlyCatalog === "undefined") {
+ onlyCatalog = false;
+ }
+ this.$axios({
+ method: 'get',
+ url: `/api/device/query/tree/${deviceId}`,
+ params:{
+ page: currentPage,
+ count: count,
+ parentId: parentId,
+ onlyCatalog: onlyCatalog
+ }
+ }).then((res) =>{
+ if (typeof (callback) == "function") callback(res.data)
+ }).catch(errorCallback);
+ }
}
export default DeviceService;
--
Gitblit v1.8.0