midway-fatcms 0.0.16 → 0.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/config.default.js +5 -3
- package/dist/configuration.d.ts +0 -3
- package/dist/configuration.js +0 -19
- package/dist/controller/gateway/ProxyApiGatewayController.d.ts +0 -2
- package/dist/controller/gateway/ProxyApiGatewayController.js +0 -18
- package/dist/controller/helpers.controller.d.ts +4 -5
- package/dist/controller/helpers.controller.js +56 -14
- package/dist/controller/manage/AccountRoleManageApi.js +3 -5
- package/dist/controller/manage/AnyApiMangeApi.js +4 -3
- package/dist/controller/manage/AppMangeApi.js +3 -4
- package/dist/controller/manage/AppPageMangeApi.js +4 -3
- package/dist/controller/manage/CrudMethodsMangeApi.js +3 -4
- package/dist/controller/manage/DataDictManageApi.js +6 -7
- package/dist/controller/manage/DeployManageApi.js +4 -5
- package/dist/controller/manage/FlowConfigManageApi.js +3 -5
- package/dist/controller/manage/MenuManageApi.js +3 -4
- package/dist/controller/manage/ProxyApiMangeApi.js +3 -4
- package/dist/controller/manage/SysConfigMangeApi.js +3 -3
- package/dist/controller/manage/SystemInfoManageApi.js +3 -1
- package/dist/controller/manage/WorkbenchMangeApi.js +3 -4
- package/dist/index.d.ts +3 -0
- package/dist/index.js +3 -0
- package/dist/libs/crud-pro/models/TransactionSqlServer.js +27 -4
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.d.ts +5 -8
- package/dist/libs/crud-pro/services/CrudProCachedCfgService.js +25 -42
- package/dist/libs/crud-pro/utils/CrudMonitor.d.ts +0 -9
- package/dist/libs/crud-pro/utils/CrudMonitor.js +0 -21
- package/dist/libs/crud-pro/utils/pool/SqlServerUtils.js +26 -0
- package/dist/middleware/cacherefresh.middleware.d.ts +3 -46
- package/dist/middleware/cacherefresh.middleware.js +9 -67
- package/dist/models/CacheRefreshCategory.d.ts +1 -18
- package/dist/models/CacheRefreshCategory.js +0 -17
- package/dist/models/SystemEntities.d.ts +2 -0
- package/dist/models/bizmodels.d.ts +0 -8
- package/dist/models/bizmodels.js +0 -8
- package/dist/schedule/scheduleNames.d.ts +2 -0
- package/dist/schedule/scheduleNames.js +3 -1
- package/dist/service/SysAppService.d.ts +2 -5
- package/dist/service/SysAppService.js +15 -69
- package/dist/service/SysConfigService.d.ts +1 -6
- package/dist/service/SysConfigService.js +7 -46
- package/dist/service/SysDictDataService.d.ts +2 -5
- package/dist/service/SysDictDataService.js +13 -59
- package/dist/service/SysMenuService.d.ts +1 -4
- package/dist/service/SysMenuService.js +6 -42
- package/dist/service/WorkbenchService.d.ts +1 -5
- package/dist/service/WorkbenchService.js +10 -61
- package/dist/service/anyapi/AnyApiService.d.ts +1 -1
- package/dist/service/anyapi/AnyApiService.js +6 -16
- package/dist/service/base/bizmemcache/BizMemCacheService.d.ts +16 -0
- package/dist/service/base/bizmemcache/BizMemCacheService.js +239 -0
- package/dist/service/base/bizmemcache/BizMemCacheStore.d.ts +34 -0
- package/dist/service/base/bizmemcache/BizMemCacheStore.js +118 -0
- package/dist/service/base/bizmemcache/BizMemCacheTypes.d.ts +60 -0
- package/dist/service/base/bizmemcache/BizMemCacheTypes.js +18 -0
- package/dist/service/base/cache-refresh/CacheRefreshHub.d.ts +0 -22
- package/dist/service/base/cache-refresh/CacheRefreshHub.js +0 -22
- package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.d.ts +0 -6
- package/dist/service/base/cache-refresh/CacheRefreshHubScheduleService.js +0 -6
- package/dist/service/curd/CurdMixByDictService.d.ts +0 -4
- package/dist/service/curd/CurdMixByDictService.js +9 -55
- package/dist/service/curd/CurdMixBySysConfigService.d.ts +0 -5
- package/dist/service/curd/CurdMixBySysConfigService.js +9 -54
- package/dist/service/curd/CurdMixByWorkbenchService.d.ts +0 -1
- package/dist/service/curd/CurdMixByWorkbenchService.js +9 -36
- package/dist/service/curd/CurdProService.d.ts +0 -1
- package/dist/service/curd/CurdProService.js +0 -4
- package/dist/service/proxyapi/ProxyApiLoadService.d.ts +3 -8
- package/dist/service/proxyapi/ProxyApiLoadService.js +40 -68
- package/dist/service/proxyapi/ProxyApiService.d.ts +2 -0
- package/dist/service/proxyapi/ProxyApiService.js +32 -9
- package/dist/service/proxyapi/RouteTrie.d.ts +1 -7
- package/dist/service/proxyapi/RouteTrie.js +1 -17
- package/package.json +1 -1
- package/src/config/config.default.ts +4 -2
- package/src/configuration.ts +0 -23
- package/src/controller/gateway/ProxyApiGatewayController.ts +1 -9
- package/src/controller/helpers.controller.ts +66 -15
- package/src/controller/manage/AccountRoleManageApi.ts +3 -5
- package/src/controller/manage/AnyApiMangeApi.ts +4 -3
- package/src/controller/manage/AppMangeApi.ts +4 -5
- package/src/controller/manage/AppPageMangeApi.ts +4 -3
- package/src/controller/manage/CrudMethodsMangeApi.ts +4 -5
- package/src/controller/manage/DataDictManageApi.ts +7 -8
- package/src/controller/manage/DeployManageApi.ts +2 -3
- package/src/controller/manage/FlowConfigManageApi.ts +3 -5
- package/src/controller/manage/MenuManageApi.ts +4 -5
- package/src/controller/manage/ProxyApiMangeApi.ts +4 -5
- package/src/controller/manage/SysConfigMangeApi.ts +5 -5
- package/src/controller/manage/SystemInfoManageApi.ts +3 -1
- package/src/controller/manage/WorkbenchMangeApi.ts +4 -5
- package/src/index.ts +3 -0
- package/src/libs/crud-pro/models/TransactionSqlServer.ts +26 -4
- package/src/libs/crud-pro/services/CrudProCachedCfgService.ts +25 -43
- package/src/libs/crud-pro/utils/CrudMonitor.ts +0 -23
- package/src/libs/crud-pro/utils/pool/SqlServerUtils.ts +31 -0
- package/src/middleware/cacherefresh.middleware.ts +10 -71
- package/src/models/CacheRefreshCategory.ts +0 -17
- package/src/models/SystemEntities.ts +2 -0
- package/src/models/bizmodels.ts +0 -8
- package/src/schedule/scheduleNames.ts +5 -3
- package/src/service/SysAppService.ts +13 -66
- package/src/service/SysConfigService.ts +6 -39
- package/src/service/SysDictDataService.ts +11 -56
- package/src/service/SysMenuService.ts +4 -37
- package/src/service/WorkbenchService.ts +10 -68
- package/src/service/anyapi/AnyApiService.ts +5 -17
- package/src/service/base/bizmemcache/BizMemCacheService.ts +288 -0
- package/src/service/base/bizmemcache/BizMemCacheStore.ts +158 -0
- package/src/service/base/bizmemcache/BizMemCacheTypes.ts +76 -0
- package/src/service/base/cache-refresh/CacheRefreshHub.ts +0 -22
- package/src/service/base/cache-refresh/CacheRefreshHubScheduleService.ts +0 -6
- package/src/service/curd/CurdMixByDictService.ts +10 -61
- package/src/service/curd/CurdMixBySysConfigService.ts +9 -62
- package/src/service/curd/CurdMixByWorkbenchService.ts +7 -32
- package/src/service/curd/CurdProService.ts +0 -6
- package/src/service/proxyapi/ProxyApiLoadService.ts +39 -77
- package/src/service/proxyapi/ProxyApiService.ts +45 -9
- package/src/service/proxyapi/RouteTrie.ts +1 -18
|
@@ -15,7 +15,6 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
15
15
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
16
16
|
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
17
17
|
const cacherefresh_middleware_1 = require("../../middleware/cacherefresh.middleware");
|
|
18
|
-
const CacheRefreshCategory_1 = require("../../models/CacheRefreshCategory");
|
|
19
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
20
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
21
20
|
let ProxyApiMangeApi = class ProxyApiMangeApi extends BaseApiController_1.BaseApiController {
|
|
@@ -66,19 +65,19 @@ __decorate([
|
|
|
66
65
|
__metadata("design:returntype", Promise)
|
|
67
66
|
], ProxyApiMangeApi.prototype, "getProxyApiOne", null);
|
|
68
67
|
__decorate([
|
|
69
|
-
(0, core_1.Post)('/createProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
68
|
+
(0, core_1.Post)('/createProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
70
69
|
__metadata("design:type", Function),
|
|
71
70
|
__metadata("design:paramtypes", []),
|
|
72
71
|
__metadata("design:returntype", Promise)
|
|
73
72
|
], ProxyApiMangeApi.prototype, "createProxyApi", null);
|
|
74
73
|
__decorate([
|
|
75
|
-
(0, core_1.Post)('/updateProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
74
|
+
(0, core_1.Post)('/updateProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
76
75
|
__metadata("design:type", Function),
|
|
77
76
|
__metadata("design:paramtypes", []),
|
|
78
77
|
__metadata("design:returntype", Promise)
|
|
79
78
|
], ProxyApiMangeApi.prototype, "updateProxyApi", null);
|
|
80
79
|
__decorate([
|
|
81
|
-
(0, core_1.Post)('/deleteProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.
|
|
80
|
+
(0, core_1.Post)('/deleteProxyApi', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.ProxyApiManageWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysProxyApiCacheObj')] }),
|
|
82
81
|
__metadata("design:type", Function),
|
|
83
82
|
__metadata("design:paramtypes", []),
|
|
84
83
|
__metadata("design:returntype", Promise)
|
|
@@ -115,19 +115,19 @@ __decorate([
|
|
|
115
115
|
__metadata("design:returntype", Promise)
|
|
116
116
|
], SysConfigMangeApi.prototype, "getSysConfigOne", null);
|
|
117
117
|
__decorate([
|
|
118
|
-
(0, core_1.Post)('/createSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
118
|
+
(0, core_1.Post)('/createSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
119
119
|
__metadata("design:type", Function),
|
|
120
120
|
__metadata("design:paramtypes", []),
|
|
121
121
|
__metadata("design:returntype", Promise)
|
|
122
122
|
], SysConfigMangeApi.prototype, "createSysConfig", null);
|
|
123
123
|
__decorate([
|
|
124
|
-
(0, core_1.Post)('/updateSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
124
|
+
(0, core_1.Post)('/updateSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
125
125
|
__metadata("design:type", Function),
|
|
126
126
|
__metadata("design:paramtypes", []),
|
|
127
127
|
__metadata("design:returntype", Promise)
|
|
128
128
|
], SysConfigMangeApi.prototype, "updateSysConfig", null);
|
|
129
129
|
__decorate([
|
|
130
|
-
(0, core_1.Post)('/deleteSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.
|
|
130
|
+
(0, core_1.Post)('/deleteSysConfig', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.SysConfigMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('sysConfgCacheObj')] }),
|
|
131
131
|
__metadata("design:type", Function),
|
|
132
132
|
__metadata("design:paramtypes", []),
|
|
133
133
|
__metadata("design:returntype", Promise)
|
|
@@ -16,6 +16,7 @@ const BaseApiController_1 = require("../base/BaseApiController");
|
|
|
16
16
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
17
17
|
const common_dto_1 = require("../../libs/utils/common-dto");
|
|
18
18
|
const CrudMonitor_1 = require("../../libs/crud-pro/utils/CrudMonitor");
|
|
19
|
+
const BizMemCacheStore_1 = require("../../service/base/bizmemcache/BizMemCacheStore");
|
|
19
20
|
let SystemInfoManageApi = class SystemInfoManageApi extends BaseApiController_1.BaseApiController {
|
|
20
21
|
/**
|
|
21
22
|
* 预设系统内置功能点数据
|
|
@@ -58,7 +59,8 @@ let SystemInfoManageApi = class SystemInfoManageApi extends BaseApiController_1.
|
|
|
58
59
|
timeInfo,
|
|
59
60
|
envInfo,
|
|
60
61
|
networkInfo,
|
|
61
|
-
crudMonitorInfo: CrudMonitor_1.CrudMonitor
|
|
62
|
+
crudMonitorInfo: CrudMonitor_1.CrudMonitor,
|
|
63
|
+
bizMemCacheLastTime: BizMemCacheStore_1.bizMemCacheStore.getLastTimeSnapshot(),
|
|
62
64
|
});
|
|
63
65
|
}
|
|
64
66
|
};
|
|
@@ -15,7 +15,6 @@ const keys_1 = require("../../libs/crud-pro/models/keys");
|
|
|
15
15
|
const BaseApiController_1 = require("../base/BaseApiController");
|
|
16
16
|
const permission_middleware_1 = require("../../middleware/permission.middleware");
|
|
17
17
|
const cacherefresh_middleware_1 = require("../../middleware/cacherefresh.middleware");
|
|
18
|
-
const bizmodels_1 = require("../../models/bizmodels");
|
|
19
18
|
const SystemPerm_1 = require("../../models/SystemPerm");
|
|
20
19
|
const SystemTables_1 = require("../../models/SystemTables");
|
|
21
20
|
let WorkbenchMangeApi = class WorkbenchMangeApi extends BaseApiController_1.BaseApiController {
|
|
@@ -78,19 +77,19 @@ __decorate([
|
|
|
78
77
|
__metadata("design:returntype", Promise)
|
|
79
78
|
], WorkbenchMangeApi.prototype, "getWorkbenchOne", null);
|
|
80
79
|
__decorate([
|
|
81
|
-
(0, core_1.Post)('/createWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
80
|
+
(0, core_1.Post)('/createWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
82
81
|
__metadata("design:type", Function),
|
|
83
82
|
__metadata("design:paramtypes", []),
|
|
84
83
|
__metadata("design:returntype", Promise)
|
|
85
84
|
], WorkbenchMangeApi.prototype, "createWorkbench", null);
|
|
86
85
|
__decorate([
|
|
87
|
-
(0, core_1.Post)('/updateWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
86
|
+
(0, core_1.Post)('/updateWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
88
87
|
__metadata("design:type", Function),
|
|
89
88
|
__metadata("design:paramtypes", []),
|
|
90
89
|
__metadata("design:returntype", Promise)
|
|
91
90
|
], WorkbenchMangeApi.prototype, "updateWorkbench", null);
|
|
92
91
|
__decorate([
|
|
93
|
-
(0, core_1.Post)('/deleteWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.
|
|
92
|
+
(0, core_1.Post)('/deleteWorkbench', { middleware: [(0, permission_middleware_1.checkPermission)(SystemPerm_1.SystemFuncCode.WorkbenchMangeWrite), (0, cacherefresh_middleware_1.refreshBizMemCache)('workbenchCachedObj')] }),
|
|
94
93
|
__metadata("design:type", Function),
|
|
95
94
|
__metadata("design:paramtypes", []),
|
|
96
95
|
__metadata("design:returntype", Promise)
|
package/dist/index.d.ts
CHANGED
|
@@ -58,6 +58,9 @@ export * from './service/UserAccountService';
|
|
|
58
58
|
export * from './service/UserSessionService';
|
|
59
59
|
export * from './service/VisitStatService';
|
|
60
60
|
export * from './service/WorkbenchService';
|
|
61
|
+
export * from './service/base/bizmemcache/BizMemCacheService';
|
|
62
|
+
export * from './service/base/bizmemcache/BizMemCacheTypes';
|
|
63
|
+
export * from './service/base/bizmemcache/BizMemCacheStore';
|
|
61
64
|
export * from './service/anyapi/AnyApiSandboxService';
|
|
62
65
|
export * from './service/anyapi/AnyApiService';
|
|
63
66
|
export * from './service/base/ApiBaseService';
|
package/dist/index.js
CHANGED
|
@@ -76,6 +76,9 @@ __exportStar(require("./service/UserAccountService"), exports);
|
|
|
76
76
|
__exportStar(require("./service/UserSessionService"), exports);
|
|
77
77
|
__exportStar(require("./service/VisitStatService"), exports);
|
|
78
78
|
__exportStar(require("./service/WorkbenchService"), exports);
|
|
79
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheService"), exports);
|
|
80
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheTypes"), exports);
|
|
81
|
+
__exportStar(require("./service/base/bizmemcache/BizMemCacheStore"), exports);
|
|
79
82
|
__exportStar(require("./service/anyapi/AnyApiSandboxService"), exports);
|
|
80
83
|
__exportStar(require("./service/anyapi/AnyApiService"), exports);
|
|
81
84
|
__exportStar(require("./service/base/ApiBaseService"), exports);
|
|
@@ -6,10 +6,15 @@ const CrudMonitor_1 = require("../../../libs/crud-pro/utils/CrudMonitor");
|
|
|
6
6
|
const _ = require("lodash");
|
|
7
7
|
class SqlServerConnectionClient {
|
|
8
8
|
constructor(originConnection) {
|
|
9
|
+
this.isReleased = false;
|
|
9
10
|
this.originConnection = originConnection;
|
|
11
|
+
CrudMonitor_1.CrudMonitor.mssqlGetConnectionCount++;
|
|
10
12
|
}
|
|
11
13
|
async query(sql, values) {
|
|
12
|
-
|
|
14
|
+
// 如果存在活跃的事务,请求应该绑定到事务上,否则事务不生效
|
|
15
|
+
const request = this.sqlServerTransaction
|
|
16
|
+
? new mssql_1.Request(this.sqlServerTransaction)
|
|
17
|
+
: new mssql_1.Request(this.originConnection);
|
|
13
18
|
if (Array.isArray(values)) {
|
|
14
19
|
for (let i = 0; i < values.length; i++) {
|
|
15
20
|
const index = i + 1;
|
|
@@ -32,15 +37,33 @@ class SqlServerConnectionClient {
|
|
|
32
37
|
}
|
|
33
38
|
async commit() {
|
|
34
39
|
const tmpTx = this.sqlServerTransaction;
|
|
35
|
-
|
|
40
|
+
if (tmpTx) {
|
|
41
|
+
await tmpTx.commit();
|
|
42
|
+
}
|
|
36
43
|
}
|
|
37
44
|
async rollback() {
|
|
38
45
|
const tmpTx = this.sqlServerTransaction;
|
|
39
|
-
|
|
46
|
+
if (tmpTx) {
|
|
47
|
+
await tmpTx.rollback();
|
|
48
|
+
}
|
|
40
49
|
}
|
|
41
50
|
async release() {
|
|
51
|
+
if (this.isReleased) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.isReleased = true;
|
|
42
55
|
try {
|
|
43
|
-
|
|
56
|
+
// 如果有未结束的事务,先回滚
|
|
57
|
+
if (this.sqlServerTransaction) {
|
|
58
|
+
try {
|
|
59
|
+
await this.sqlServerTransaction.rollback();
|
|
60
|
+
}
|
|
61
|
+
catch (e) {
|
|
62
|
+
// 事务可能已经回滚或提交,忽略错误
|
|
63
|
+
}
|
|
64
|
+
this.sqlServerTransaction = null;
|
|
65
|
+
}
|
|
66
|
+
CrudMonitor_1.CrudMonitor.mssqlReleaseConnectionCount++;
|
|
44
67
|
}
|
|
45
68
|
catch (e) {
|
|
46
69
|
console.log('[crud-pro] SqlServerConnectionClient release ', e);
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import { CrudProServiceBase } from './CrudProServiceBase';
|
|
2
2
|
import { IRequestCfgModel } from '../interfaces';
|
|
3
3
|
import { ICurdProServiceHub } from '../models/ServiceHub';
|
|
4
|
+
export declare function parseCrudMethodInfo(row: any): IRequestCfgModel;
|
|
5
|
+
/**
|
|
6
|
+
* 注入 CRUD 方法配置缓存(由 BizMemCache 加载后调用)
|
|
7
|
+
*/
|
|
8
|
+
export declare function setMethodCache(methodInfoList: IRequestCfgModel[] | null): void;
|
|
4
9
|
declare class CrudProCachedCfgService extends CrudProServiceBase {
|
|
5
10
|
constructor(serviceHub: ICurdProServiceHub);
|
|
6
11
|
getCachedCfgByMethod(method: string, isEnableCache: boolean): Promise<IRequestCfgModel | null>;
|
|
7
12
|
private getCachedCfgByMethodInner;
|
|
8
13
|
private loadMethodInfo;
|
|
9
|
-
private loadMethodInfoList;
|
|
10
14
|
}
|
|
11
15
|
export { CrudProCachedCfgService };
|
|
12
|
-
/**
|
|
13
|
-
* 清空 CRUD 方法配置缓存(独立函数,无需实例化 Service 即可调用)
|
|
14
|
-
*
|
|
15
|
-
* 清空后,下次请求会自动从数据库重新加载(懒加载刷新)。
|
|
16
|
-
* 适用于 manage 增删改触发刷新、定时刷新等场景。
|
|
17
|
-
*/
|
|
18
|
-
export declare function clearMethodCache(): void;
|
|
@@ -1,19 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.CrudProCachedCfgService = exports.setMethodCache = exports.parseCrudMethodInfo = void 0;
|
|
4
4
|
const humps_1 = require("humps");
|
|
5
5
|
const CrudProServiceBase_1 = require("./CrudProServiceBase");
|
|
6
6
|
const MixinUtils_1 = require("../utils/MixinUtils");
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
const
|
|
11
|
-
function parseMethodInfo(row) {
|
|
12
|
-
const methodInfo = (0, humps_1.camelizeKeys)(row); //转换成驼峰
|
|
7
|
+
/** 由上层 BizMemCache 注入的方法配置缓存,key 为 method */
|
|
8
|
+
let externalMethodCacheMap = null;
|
|
9
|
+
function parseCrudMethodInfo(row) {
|
|
10
|
+
const methodInfo = (0, humps_1.camelizeKeys)(row);
|
|
13
11
|
const configObject = MixinUtils_1.MixinUtils.parseJsonObject(methodInfo.moreConfig) || {};
|
|
14
12
|
const sqlCfgList = MixinUtils_1.MixinUtils.parseJsonObject(methodInfo.sqlCfgList) || [];
|
|
15
13
|
return { ...configObject, ...methodInfo, sqlCfgList };
|
|
16
14
|
}
|
|
15
|
+
exports.parseCrudMethodInfo = parseCrudMethodInfo;
|
|
16
|
+
/**
|
|
17
|
+
* 注入 CRUD 方法配置缓存(由 BizMemCache 加载后调用)
|
|
18
|
+
*/
|
|
19
|
+
function setMethodCache(methodInfoList) {
|
|
20
|
+
if (!methodInfoList) {
|
|
21
|
+
externalMethodCacheMap = null;
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
externalMethodCacheMap = MixinUtils_1.MixinUtils.toMap(methodInfoList, item => item.method);
|
|
25
|
+
}
|
|
26
|
+
exports.setMethodCache = setMethodCache;
|
|
17
27
|
class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
18
28
|
constructor(serviceHub) {
|
|
19
29
|
super(serviceHub);
|
|
@@ -26,24 +36,21 @@ class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
|
26
36
|
return { ...methodInfo };
|
|
27
37
|
}
|
|
28
38
|
async getCachedCfgByMethodInner(method, isEnableCache) {
|
|
29
|
-
// 不使用缓存
|
|
30
39
|
if (!isEnableCache) {
|
|
31
40
|
return await this.loadMethodInfo(method);
|
|
32
41
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const methodInfo = await methodCache.getItem(method);
|
|
39
|
-
if (methodInfo) {
|
|
40
|
-
return methodInfo;
|
|
42
|
+
if (externalMethodCacheMap) {
|
|
43
|
+
const methodInfo = externalMethodCacheMap[method];
|
|
44
|
+
if (methodInfo) {
|
|
45
|
+
return methodInfo;
|
|
46
|
+
}
|
|
41
47
|
}
|
|
48
|
+
// 缓存未就绪或未命中时,降级单条查询
|
|
42
49
|
return await this.loadMethodInfo(method);
|
|
43
50
|
}
|
|
44
51
|
async loadMethodInfo(method) {
|
|
45
52
|
const { methodsTableName, sysDatabaseName, sysDatabaseDbType } = this.getContextCfg();
|
|
46
|
-
const sql = `select * from ${methodsTableName} where method = ? `;
|
|
53
|
+
const sql = `select * from ${methodsTableName} where method = ? `;
|
|
47
54
|
const baseInfo = {
|
|
48
55
|
sqlTable: methodsTableName,
|
|
49
56
|
sqlDatabase: sysDatabaseName,
|
|
@@ -52,33 +59,9 @@ class CrudProCachedCfgService extends CrudProServiceBase_1.CrudProServiceBase {
|
|
|
52
59
|
const queryRes = await this.executeUnsafeQuery(baseInfo, sql, [method]);
|
|
53
60
|
const rows2 = queryRes.rows || [];
|
|
54
61
|
if (rows2.length > 0) {
|
|
55
|
-
return
|
|
62
|
+
return parseCrudMethodInfo(rows2[0]);
|
|
56
63
|
}
|
|
57
64
|
return null;
|
|
58
65
|
}
|
|
59
|
-
async loadMethodInfoList() {
|
|
60
|
-
const { methodsTableName, sysDatabaseName, sysDatabaseDbType } = this.getContextCfg();
|
|
61
|
-
const sql = `select * from ${methodsTableName}`; // 全部加载到内存
|
|
62
|
-
const baseInfo = {
|
|
63
|
-
sqlTable: methodsTableName,
|
|
64
|
-
sqlDatabase: sysDatabaseName,
|
|
65
|
-
sqlDbType: sysDatabaseDbType,
|
|
66
|
-
};
|
|
67
|
-
const queryRes = await this.executeUnsafeQuery(baseInfo, sql);
|
|
68
|
-
const rows2 = queryRes.rows || [];
|
|
69
|
-
return rows2.map(row => {
|
|
70
|
-
return parseMethodInfo(row);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
66
|
}
|
|
74
67
|
exports.CrudProCachedCfgService = CrudProCachedCfgService;
|
|
75
|
-
/**
|
|
76
|
-
* 清空 CRUD 方法配置缓存(独立函数,无需实例化 Service 即可调用)
|
|
77
|
-
*
|
|
78
|
-
* 清空后,下次请求会自动从数据库重新加载(懒加载刷新)。
|
|
79
|
-
* 适用于 manage 增删改触发刷新、定时刷新等场景。
|
|
80
|
-
*/
|
|
81
|
-
function clearMethodCache() {
|
|
82
|
-
methodCache.clear();
|
|
83
|
-
}
|
|
84
|
-
exports.clearMethodCache = clearMethodCache;
|
|
@@ -13,17 +13,8 @@ declare const CrudMonitor: {
|
|
|
13
13
|
postgresReleaseConnectionCount: number;
|
|
14
14
|
mssqlGetConnectionCount: number;
|
|
15
15
|
mssqlReleaseConnectionCount: number;
|
|
16
|
-
/** 每个缓存项的最近一次刷新时间(时间戳 ms),null 表示尚未刷新 */
|
|
17
16
|
cacheLastRefreshTime: CacheLastRefreshTimeMap;
|
|
18
|
-
/**
|
|
19
|
-
* 记录缓存刷新时间
|
|
20
|
-
* @param key 缓存类别或缓存名
|
|
21
|
-
*/
|
|
22
17
|
markCacheRefreshed(key: CacheRefreshKey): void;
|
|
23
|
-
/**
|
|
24
|
-
* 获取缓存最近刷新时间
|
|
25
|
-
* @param key 缓存类别或缓存名
|
|
26
|
-
*/
|
|
27
18
|
getCacheLastRefreshTime(key: CacheRefreshKey): number | null;
|
|
28
19
|
};
|
|
29
20
|
export { CrudMonitor, };
|
|
@@ -10,40 +10,19 @@ const CrudMonitor = {
|
|
|
10
10
|
postgresReleaseConnectionCount: 0,
|
|
11
11
|
mssqlGetConnectionCount: 0,
|
|
12
12
|
mssqlReleaseConnectionCount: 0,
|
|
13
|
-
/** 每个缓存项的最近一次刷新时间(时间戳 ms),null 表示尚未刷新 */
|
|
14
13
|
cacheLastRefreshTime: {
|
|
15
|
-
// CacheRefreshCategory
|
|
16
14
|
[CacheRefreshCategory_1.CacheRefreshCategory.TableMeta]: null,
|
|
17
15
|
[CacheRefreshCategory_1.CacheRefreshCategory.CacheService]: null,
|
|
18
16
|
[CacheRefreshCategory_1.CacheRefreshCategory.LinkToCustom]: null,
|
|
19
|
-
[CacheRefreshCategory_1.CacheRefreshCategory.ProxyApiRoute]: null,
|
|
20
|
-
[CacheRefreshCategory_1.CacheRefreshCategory.CrudMethodConfig]: null,
|
|
21
|
-
// CacheNameEnum
|
|
22
17
|
[bizmodels_1.CacheNameEnum.CurdMixByAccount]: null,
|
|
23
|
-
[bizmodels_1.CacheNameEnum.CurdMixByDict]: null,
|
|
24
18
|
[bizmodels_1.CacheNameEnum.CurdMixByLinkToCustom]: null,
|
|
25
|
-
[bizmodels_1.CacheNameEnum.CurdMixByWorkbench]: null,
|
|
26
|
-
[bizmodels_1.CacheNameEnum.GetSysConfigOne]: null,
|
|
27
|
-
[bizmodels_1.CacheNameEnum.GetDataDictItemsByDictCode]: null,
|
|
28
|
-
[bizmodels_1.CacheNameEnum.GetWorkbenchCachedObj]: null,
|
|
29
|
-
[bizmodels_1.CacheNameEnum.GetSysAppOne]: null,
|
|
30
|
-
[bizmodels_1.CacheNameEnum.GetSysAppPageOne]: null,
|
|
31
|
-
[bizmodels_1.CacheNameEnum.GetSysMenusList]: null,
|
|
32
19
|
[bizmodels_1.CacheNameEnum.GetFlowConfigOne]: null,
|
|
33
20
|
[bizmodels_1.CacheNameEnum.UserSessionBySessionId]: null,
|
|
34
21
|
[bizmodels_1.CacheNameEnum.UserSessionByAsyncTaskId]: null,
|
|
35
22
|
},
|
|
36
|
-
/**
|
|
37
|
-
* 记录缓存刷新时间
|
|
38
|
-
* @param key 缓存类别或缓存名
|
|
39
|
-
*/
|
|
40
23
|
markCacheRefreshed(key) {
|
|
41
24
|
this.cacheLastRefreshTime[key] = Date.now();
|
|
42
25
|
},
|
|
43
|
-
/**
|
|
44
|
-
* 获取缓存最近刷新时间
|
|
45
|
-
* @param key 缓存类别或缓存名
|
|
46
|
-
*/
|
|
47
26
|
getCacheLastRefreshTime(key) {
|
|
48
27
|
var _a;
|
|
49
28
|
return (_a = this.cacheLastRefreshTime[key]) !== null && _a !== void 0 ? _a : null;
|
|
@@ -4,10 +4,36 @@ exports.getConnectionPool = void 0;
|
|
|
4
4
|
const mssql_1 = require("mssql");
|
|
5
5
|
const keys_1 = require("../../models/keys");
|
|
6
6
|
const POOL_CACHE_MAP = {};
|
|
7
|
+
const POOL_CONNECTING_MAP = {};
|
|
8
|
+
async function doConnectPool(poolName, poolObj) {
|
|
9
|
+
// 避免重复连接同一个池
|
|
10
|
+
if (POOL_CONNECTING_MAP[poolName]) {
|
|
11
|
+
return POOL_CONNECTING_MAP[poolName];
|
|
12
|
+
}
|
|
13
|
+
const connectPromise = poolObj.connect().then((connectedPool) => {
|
|
14
|
+
console.log(`[crud-pro] SQL Server connection pool "${poolName}" connected successfully.`);
|
|
15
|
+
return connectedPool;
|
|
16
|
+
}).catch((err) => {
|
|
17
|
+
console.error(`[crud-pro] SQL Server connection pool "${poolName}" connect failed:`, err);
|
|
18
|
+
throw err;
|
|
19
|
+
}).finally(() => {
|
|
20
|
+
delete POOL_CONNECTING_MAP[poolName];
|
|
21
|
+
});
|
|
22
|
+
POOL_CONNECTING_MAP[poolName] = connectPromise;
|
|
23
|
+
return connectPromise;
|
|
24
|
+
}
|
|
7
25
|
function getConnectionPool(poolName, poolOptions) {
|
|
8
26
|
let pool = POOL_CACHE_MAP[poolName];
|
|
9
27
|
if (!pool) {
|
|
10
28
|
const poolObj = new mssql_1.ConnectionPool(poolOptions);
|
|
29
|
+
// 监听连接池错误,避免未捕获的异常导致进程崩溃
|
|
30
|
+
poolObj.on('error', (err) => {
|
|
31
|
+
console.error(`[crud-pro] SQL Server connection pool "${poolName}" error:`, err);
|
|
32
|
+
});
|
|
33
|
+
// 预连接池,避免首次请求时才建立连接导致延迟
|
|
34
|
+
doConnectPool(poolName, poolObj).catch(() => {
|
|
35
|
+
// 错误已在 doConnectPool 中打印,此处无需重复处理
|
|
36
|
+
});
|
|
11
37
|
pool = {
|
|
12
38
|
dbType: keys_1.SqlDbType.sqlserver,
|
|
13
39
|
poolName: poolName,
|
|
@@ -1,47 +1,4 @@
|
|
|
1
1
|
import { NextFunction, Context } from '@midwayjs/koa';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* 缓存刷新中间件
|
|
6
|
-
*
|
|
7
|
-
* 在路由处理成功完成后,自动触发指定缓存项的刷新。
|
|
8
|
-
* 采用后置刷新模式:先 await next() 让业务逻辑执行完毕,再刷新缓存。
|
|
9
|
-
*
|
|
10
|
-
* 应用场景:
|
|
11
|
-
* 1. manage 增删改操作后自动刷新关联的业务缓存
|
|
12
|
-
* 2. 精准刷新:只刷新与本次操作相关的缓存项,避免全量刷新
|
|
13
|
-
*
|
|
14
|
-
* 使用示例:
|
|
15
|
-
* ```typescript
|
|
16
|
-
* // 刷新全部业务缓存(向后兼容,等同原来的 refreshCache())
|
|
17
|
-
* @Post('/createRole', { middleware: [checkPermission('write'), refreshCache()] })
|
|
18
|
-
* async createRole() { ... }
|
|
19
|
-
*
|
|
20
|
-
* // 精准刷新:只刷新指定缓存项
|
|
21
|
-
* @Post('/createMenu', { middleware: [checkPermission('write'), refreshCache(CacheNameEnum.GetSysMenusList)] })
|
|
22
|
-
* async createMenu() { ... }
|
|
23
|
-
*
|
|
24
|
-
* // 同时刷新多个缓存项
|
|
25
|
-
* @Post('/createApp', { middleware: [checkPermission('write'), refreshCache([CacheNameEnum.GetSysAppOne, CacheNameEnum.GetSysAppPageOne])] })
|
|
26
|
-
* async createApp() { ... }
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @param cacheName 缓存名称,不传则刷新全部,支持单个或数组
|
|
30
|
-
*/
|
|
31
|
-
declare function refreshCache(cacheName?: CacheNameEnum | CacheNameEnum[]): (ctx: Context, next: NextFunction) => Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* 缓存类别刷新中间件
|
|
34
|
-
*
|
|
35
|
-
* 通过 CacheRefreshHub 刷新指定类别的缓存(TableMeta / LinkToCustom / ProxyApiRoute 等)。
|
|
36
|
-
* 适用于非 CacheNameEnum 管理的缓存类别。
|
|
37
|
-
*
|
|
38
|
-
* 使用示例:
|
|
39
|
-
* ```typescript
|
|
40
|
-
* @Post('/createProxyApi', { middleware: [checkPermission('write'), refreshCategory(CacheRefreshCategory.ProxyApiRoute)] })
|
|
41
|
-
* async createProxyApi() { ... }
|
|
42
|
-
* ```
|
|
43
|
-
*
|
|
44
|
-
* @param category 缓存类别,支持单个或数组
|
|
45
|
-
*/
|
|
46
|
-
declare function refreshCategory(category: CacheRefreshCategory | CacheRefreshCategory[]): (ctx: Context, next: NextFunction) => Promise<void>;
|
|
47
|
-
export { refreshCache, refreshCategory };
|
|
2
|
+
import { BizMemCacheKey } from '../service/base/bizmemcache/BizMemCacheTypes';
|
|
3
|
+
declare function refreshBizMemCache(cacheKey: BizMemCacheKey | BizMemCacheKey[]): (ctx: Context, next: NextFunction) => Promise<void>;
|
|
4
|
+
export { refreshBizMemCache };
|
|
@@ -1,74 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*
|
|
9
|
-
* 在路由处理成功完成后,自动触发指定缓存项的刷新。
|
|
10
|
-
* 采用后置刷新模式:先 await next() 让业务逻辑执行完毕,再刷新缓存。
|
|
11
|
-
*
|
|
12
|
-
* 应用场景:
|
|
13
|
-
* 1. manage 增删改操作后自动刷新关联的业务缓存
|
|
14
|
-
* 2. 精准刷新:只刷新与本次操作相关的缓存项,避免全量刷新
|
|
15
|
-
*
|
|
16
|
-
* 使用示例:
|
|
17
|
-
* ```typescript
|
|
18
|
-
* // 刷新全部业务缓存(向后兼容,等同原来的 refreshCache())
|
|
19
|
-
* @Post('/createRole', { middleware: [checkPermission('write'), refreshCache()] })
|
|
20
|
-
* async createRole() { ... }
|
|
21
|
-
*
|
|
22
|
-
* // 精准刷新:只刷新指定缓存项
|
|
23
|
-
* @Post('/createMenu', { middleware: [checkPermission('write'), refreshCache(CacheNameEnum.GetSysMenusList)] })
|
|
24
|
-
* async createMenu() { ... }
|
|
25
|
-
*
|
|
26
|
-
* // 同时刷新多个缓存项
|
|
27
|
-
* @Post('/createApp', { middleware: [checkPermission('write'), refreshCache([CacheNameEnum.GetSysAppOne, CacheNameEnum.GetSysAppPageOne])] })
|
|
28
|
-
* async createApp() { ... }
|
|
29
|
-
* ```
|
|
30
|
-
*
|
|
31
|
-
* @param cacheName 缓存名称,不传则刷新全部,支持单个或数组
|
|
32
|
-
*/
|
|
33
|
-
function refreshCache(cacheName) {
|
|
34
|
-
const cacheNames = cacheName ? (Array.isArray(cacheName) ? cacheName : [cacheName]) : null;
|
|
3
|
+
exports.refreshBizMemCache = void 0;
|
|
4
|
+
const redis_1 = require("@midwayjs/redis");
|
|
5
|
+
const BizMemCacheStore_1 = require("../service/base/bizmemcache/BizMemCacheStore");
|
|
6
|
+
function refreshBizMemCache(cacheKey) {
|
|
7
|
+
const cacheKeys = Array.isArray(cacheKey) ? cacheKey : [cacheKey];
|
|
35
8
|
return async (ctx, next) => {
|
|
36
9
|
await next();
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
for (const name of cacheNames) {
|
|
41
|
-
await cacheServiceFactory.refreshByCacheName(name, ctx);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
// 全量刷新:刷新所有已注册的业务缓存
|
|
46
|
-
await cacheServiceFactory.refreshAllCache(ctx);
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
}
|
|
50
|
-
exports.refreshCache = refreshCache;
|
|
51
|
-
/**
|
|
52
|
-
* 缓存类别刷新中间件
|
|
53
|
-
*
|
|
54
|
-
* 通过 CacheRefreshHub 刷新指定类别的缓存(TableMeta / LinkToCustom / ProxyApiRoute 等)。
|
|
55
|
-
* 适用于非 CacheNameEnum 管理的缓存类别。
|
|
56
|
-
*
|
|
57
|
-
* 使用示例:
|
|
58
|
-
* ```typescript
|
|
59
|
-
* @Post('/createProxyApi', { middleware: [checkPermission('write'), refreshCategory(CacheRefreshCategory.ProxyApiRoute)] })
|
|
60
|
-
* async createProxyApi() { ... }
|
|
61
|
-
* ```
|
|
62
|
-
*
|
|
63
|
-
* @param category 缓存类别,支持单个或数组
|
|
64
|
-
*/
|
|
65
|
-
function refreshCategory(category) {
|
|
66
|
-
const categories = Array.isArray(category) ? category : [category];
|
|
67
|
-
return async (ctx, next) => {
|
|
68
|
-
await next();
|
|
69
|
-
for (const cat of categories) {
|
|
70
|
-
await CacheRefreshHub_1.CacheRefreshHub.refresh(cat, ctx);
|
|
10
|
+
const redisService = await ctx.requestContext.getAsync(redis_1.RedisService);
|
|
11
|
+
for (const key of cacheKeys) {
|
|
12
|
+
await BizMemCacheStore_1.bizMemCacheStore.markDirty(key, redisService);
|
|
71
13
|
}
|
|
72
14
|
};
|
|
73
15
|
}
|
|
74
|
-
exports.
|
|
16
|
+
exports.refreshBizMemCache = refreshBizMemCache;
|
|
@@ -1,23 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 缓存刷新类型枚举
|
|
3
|
-
*
|
|
4
|
-
* 用于统一标识项目中的各类缓存,支持:
|
|
5
|
-
* - 定时刷新(10分钟自动刷新)
|
|
6
|
-
* - API 主动刷新(helpers/refreshCache?category=xxx)
|
|
7
|
-
* - manage 增删改触发刷新
|
|
8
|
-
* - Redis Pub/Sub 集群广播刷新
|
|
9
|
-
*/
|
|
10
1
|
export declare enum CacheRefreshCategory {
|
|
11
|
-
/** 表元数据缓存(CrudProTableMetaService 的 metaCache + tableInfoCache) */
|
|
12
2
|
TableMeta = "TableMeta",
|
|
13
|
-
/** CacheServiceFactory 管理的业务缓存(CacheNameEnum 定义的所有缓存) */
|
|
14
3
|
CacheService = "CacheService",
|
|
15
|
-
|
|
16
|
-
LinkToCustom = "LinkToCustom",
|
|
17
|
-
/** 代理API路由缓存(ProxyApiLoadService 的 RouteTrie + UpstreamMap) */
|
|
18
|
-
ProxyApiRoute = "ProxyApiRoute",
|
|
19
|
-
/** CRUD 方法配置缓存(CrudProCachedCfgService 的 methodCache) */
|
|
20
|
-
CrudMethodConfig = "CrudMethodConfig"
|
|
4
|
+
LinkToCustom = "LinkToCustom"
|
|
21
5
|
}
|
|
22
|
-
/** 所有缓存刷新类型列表,用于全量刷新 */
|
|
23
6
|
export declare const ALL_CACHE_REFRESH_CATEGORIES: CacheRefreshCategory[];
|
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ALL_CACHE_REFRESH_CATEGORIES = exports.CacheRefreshCategory = void 0;
|
|
4
|
-
/**
|
|
5
|
-
* 缓存刷新类型枚举
|
|
6
|
-
*
|
|
7
|
-
* 用于统一标识项目中的各类缓存,支持:
|
|
8
|
-
* - 定时刷新(10分钟自动刷新)
|
|
9
|
-
* - API 主动刷新(helpers/refreshCache?category=xxx)
|
|
10
|
-
* - manage 增删改触发刷新
|
|
11
|
-
* - Redis Pub/Sub 集群广播刷新
|
|
12
|
-
*/
|
|
13
4
|
var CacheRefreshCategory;
|
|
14
5
|
(function (CacheRefreshCategory) {
|
|
15
|
-
/** 表元数据缓存(CrudProTableMetaService 的 metaCache + tableInfoCache) */
|
|
16
6
|
CacheRefreshCategory["TableMeta"] = "TableMeta";
|
|
17
|
-
/** CacheServiceFactory 管理的业务缓存(CacheNameEnum 定义的所有缓存) */
|
|
18
7
|
CacheRefreshCategory["CacheService"] = "CacheService";
|
|
19
|
-
/** linkToCustom 关联枚举缓存(CurdMixByLinkToCustomService 管理的关联数据缓存) */
|
|
20
8
|
CacheRefreshCategory["LinkToCustom"] = "LinkToCustom";
|
|
21
|
-
/** 代理API路由缓存(ProxyApiLoadService 的 RouteTrie + UpstreamMap) */
|
|
22
|
-
CacheRefreshCategory["ProxyApiRoute"] = "ProxyApiRoute";
|
|
23
|
-
/** CRUD 方法配置缓存(CrudProCachedCfgService 的 methodCache) */
|
|
24
|
-
CacheRefreshCategory["CrudMethodConfig"] = "CrudMethodConfig";
|
|
25
9
|
})(CacheRefreshCategory = exports.CacheRefreshCategory || (exports.CacheRefreshCategory = {}));
|
|
26
|
-
/** 所有缓存刷新类型列表,用于全量刷新 */
|
|
27
10
|
exports.ALL_CACHE_REFRESH_CATEGORIES = Object.values(CacheRefreshCategory);
|
|
@@ -79,6 +79,8 @@ export interface IProxyApiEntity extends IApiBaseEntity {
|
|
|
79
79
|
pass_real_ip: number;
|
|
80
80
|
change_origin: string;
|
|
81
81
|
change_host: string;
|
|
82
|
+
custom_header: string;
|
|
83
|
+
custom_body: string;
|
|
82
84
|
balanceStrategy: string;
|
|
83
85
|
targetList: IUpstreamItem[];
|
|
84
86
|
targetIndex: number;
|
|
@@ -123,15 +123,7 @@ export interface ICacheService {
|
|
|
123
123
|
}
|
|
124
124
|
export declare enum CacheNameEnum {
|
|
125
125
|
CurdMixByAccount = "CurdMixByAccount",
|
|
126
|
-
CurdMixByDict = "CurdMixByDict",
|
|
127
126
|
CurdMixByLinkToCustom = "CurdMixByLinkToCustom",
|
|
128
|
-
CurdMixByWorkbench = "CurdMixByWorkbench",
|
|
129
|
-
GetSysConfigOne = "GetSysConfigOne",
|
|
130
|
-
GetDataDictItemsByDictCode = "GetDataDictItemsByDictCode",
|
|
131
|
-
GetWorkbenchCachedObj = "GetWorkbenchCachedObj",
|
|
132
|
-
GetSysAppOne = "GetSysAppOne",
|
|
133
|
-
GetSysAppPageOne = "GetSysAppPageOne",
|
|
134
|
-
GetSysMenusList = "GetSysMenusList",
|
|
135
127
|
GetFlowConfigOne = "GetFlowConfigOne",
|
|
136
128
|
UserSessionBySessionId = "UserSessionBySessionId",
|
|
137
129
|
UserSessionByAsyncTaskId = "UserSessionByAsyncTaskId"
|
package/dist/models/bizmodels.js
CHANGED
|
@@ -47,15 +47,7 @@ var StdCrudExportInputParamsAppType;
|
|
|
47
47
|
var CacheNameEnum;
|
|
48
48
|
(function (CacheNameEnum) {
|
|
49
49
|
CacheNameEnum["CurdMixByAccount"] = "CurdMixByAccount";
|
|
50
|
-
CacheNameEnum["CurdMixByDict"] = "CurdMixByDict";
|
|
51
50
|
CacheNameEnum["CurdMixByLinkToCustom"] = "CurdMixByLinkToCustom";
|
|
52
|
-
CacheNameEnum["CurdMixByWorkbench"] = "CurdMixByWorkbench";
|
|
53
|
-
CacheNameEnum["GetSysConfigOne"] = "GetSysConfigOne";
|
|
54
|
-
CacheNameEnum["GetDataDictItemsByDictCode"] = "GetDataDictItemsByDictCode";
|
|
55
|
-
CacheNameEnum["GetWorkbenchCachedObj"] = "GetWorkbenchCachedObj";
|
|
56
|
-
CacheNameEnum["GetSysAppOne"] = "GetSysAppOne";
|
|
57
|
-
CacheNameEnum["GetSysAppPageOne"] = "GetSysAppPageOne";
|
|
58
|
-
CacheNameEnum["GetSysMenusList"] = "GetSysMenusList";
|
|
59
51
|
CacheNameEnum["GetFlowConfigOne"] = "GetFlowConfigOne";
|
|
60
52
|
CacheNameEnum["UserSessionBySessionId"] = "UserSessionBySessionId";
|
|
61
53
|
CacheNameEnum["UserSessionByAsyncTaskId"] = "UserSessionByAsyncTaskId";
|