midway-fatcms 0.0.1-beta.13 → 0.0.1-beta.14
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/controller/gateway/AsyncTaskController.js +2 -2
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/models/AsyncTaskModel.d.ts +10 -10
- package/dist/models/AsyncTaskModel.js +23 -23
- package/dist/service/asyncTask/AsyncTaskRunnerService.js +4 -4
- package/package.json +1 -1
- package/src/controller/gateway/AsyncTaskController.ts +3 -3
- package/src/index.ts +4 -0
- package/src/models/AsyncTaskModel.ts +10 -10
- package/src/service/asyncTask/AsyncTaskRunnerService.ts +6 -6
|
@@ -30,7 +30,7 @@ function fixCancelBodyData(body, id) {
|
|
|
30
30
|
body.condition = conditionObj;
|
|
31
31
|
// fix data
|
|
32
32
|
const dataObj = (body.data || {});
|
|
33
|
-
dataObj.task_status = AsyncTaskModel_1.
|
|
33
|
+
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.CANCELLED;
|
|
34
34
|
body.data = dataObj;
|
|
35
35
|
}
|
|
36
36
|
function fixCreateBodyData(body) {
|
|
@@ -39,7 +39,7 @@ function fixCreateBodyData(body) {
|
|
|
39
39
|
}
|
|
40
40
|
// fix data
|
|
41
41
|
const dataObj = (body.data || {});
|
|
42
|
-
dataObj.task_status = AsyncTaskModel_1.
|
|
42
|
+
dataObj.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.PENDING;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* 异步任务框架
|
package/dist/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './controller/gateway/FileController';
|
|
|
8
8
|
export * from './controller/gateway/ProxyApiGatewayController';
|
|
9
9
|
export * from './controller/gateway/PublicApiController';
|
|
10
10
|
export * from './controller/gateway/StaticController';
|
|
11
|
+
export * from './controller/gateway/AsyncTaskController';
|
|
11
12
|
export * from './controller/helpers.controller';
|
|
12
13
|
export * from './controller/home.controller';
|
|
13
14
|
export * from './controller/manage/AnyApiMangeApi';
|
|
@@ -65,6 +66,8 @@ export * from './service/curd/CurdMixService';
|
|
|
65
66
|
export * from './service/curd/CurdProService';
|
|
66
67
|
export * from './service/proxyapi/ProxyApiLoadService';
|
|
67
68
|
export * from './service/proxyapi/ProxyApiService';
|
|
69
|
+
export * from './service/asyncTask/AsyncTaskService';
|
|
70
|
+
export * from './service/asyncTask/AsyncTaskRunnerService';
|
|
68
71
|
export * from './models/userSession';
|
|
69
72
|
export * from './models/bizmodels';
|
|
70
73
|
export * from './models/SystemEntities';
|
|
@@ -72,6 +75,7 @@ export * from './models/SystemPerm';
|
|
|
72
75
|
export * from './models/contextLogger';
|
|
73
76
|
export * from './models/devops';
|
|
74
77
|
export * from './models/SystemTables';
|
|
78
|
+
export * from './models/AsyncTaskModel';
|
|
75
79
|
export * from './libs/utils/common-dto';
|
|
76
80
|
export * from './libs/utils/crypto-utils';
|
|
77
81
|
export * from './libs/utils/fatcms-request';
|
package/dist/index.js
CHANGED
|
@@ -26,6 +26,7 @@ __exportStar(require("./controller/gateway/FileController"), exports);
|
|
|
26
26
|
__exportStar(require("./controller/gateway/ProxyApiGatewayController"), exports);
|
|
27
27
|
__exportStar(require("./controller/gateway/PublicApiController"), exports);
|
|
28
28
|
__exportStar(require("./controller/gateway/StaticController"), exports);
|
|
29
|
+
__exportStar(require("./controller/gateway/AsyncTaskController"), exports);
|
|
29
30
|
__exportStar(require("./controller/helpers.controller"), exports);
|
|
30
31
|
__exportStar(require("./controller/home.controller"), exports);
|
|
31
32
|
__exportStar(require("./controller/manage/AnyApiMangeApi"), exports);
|
|
@@ -83,6 +84,8 @@ __exportStar(require("./service/curd/CurdMixService"), exports);
|
|
|
83
84
|
__exportStar(require("./service/curd/CurdProService"), exports);
|
|
84
85
|
__exportStar(require("./service/proxyapi/ProxyApiLoadService"), exports);
|
|
85
86
|
__exportStar(require("./service/proxyapi/ProxyApiService"), exports);
|
|
87
|
+
__exportStar(require("./service/asyncTask/AsyncTaskService"), exports);
|
|
88
|
+
__exportStar(require("./service/asyncTask/AsyncTaskRunnerService"), exports);
|
|
86
89
|
__exportStar(require("./models/userSession"), exports);
|
|
87
90
|
__exportStar(require("./models/bizmodels"), exports);
|
|
88
91
|
__exportStar(require("./models/SystemEntities"), exports);
|
|
@@ -90,6 +93,7 @@ __exportStar(require("./models/SystemPerm"), exports);
|
|
|
90
93
|
__exportStar(require("./models/contextLogger"), exports);
|
|
91
94
|
__exportStar(require("./models/devops"), exports);
|
|
92
95
|
__exportStar(require("./models/SystemTables"), exports);
|
|
96
|
+
__exportStar(require("./models/AsyncTaskModel"), exports);
|
|
93
97
|
__exportStar(require("./libs/utils/common-dto"), exports);
|
|
94
98
|
__exportStar(require("./libs/utils/crypto-utils"), exports);
|
|
95
99
|
__exportStar(require("./libs/utils/fatcms-request"), exports);
|
|
@@ -4,14 +4,14 @@ export interface SysAsyncTaskEntity {
|
|
|
4
4
|
task_name: string;
|
|
5
5
|
task_description: string | null;
|
|
6
6
|
task_type: string;
|
|
7
|
-
task_status:
|
|
7
|
+
task_status: SysAsyncTaskStatus;
|
|
8
8
|
input_params: any;
|
|
9
9
|
output_result: any | null;
|
|
10
10
|
input_file_path: string | null;
|
|
11
|
-
input_file_format:
|
|
11
|
+
input_file_format: SysAsyncFileFormat | null;
|
|
12
12
|
input_file_size: number | null;
|
|
13
13
|
output_file_path: string | null;
|
|
14
|
-
output_file_format:
|
|
14
|
+
output_file_format: SysAsyncFileFormat | null;
|
|
15
15
|
output_file_size: number | null;
|
|
16
16
|
input_total_records: number | null;
|
|
17
17
|
output_total_records: number | null;
|
|
@@ -30,7 +30,7 @@ export interface SysAsyncTaskEntity {
|
|
|
30
30
|
updated_at: Date;
|
|
31
31
|
expired_at: Date | null;
|
|
32
32
|
}
|
|
33
|
-
export declare enum
|
|
33
|
+
export declare enum SysAsyncTaskStatus {
|
|
34
34
|
PENDING = "PENDING",
|
|
35
35
|
RUNNING = "RUNNING",
|
|
36
36
|
SUCCEEDED = "SUCCEEDED",
|
|
@@ -38,7 +38,7 @@ export declare enum TaskStatus {
|
|
|
38
38
|
CANCELLED = "CANCELLED",
|
|
39
39
|
PAUSED = "PAUSED"
|
|
40
40
|
}
|
|
41
|
-
export declare enum
|
|
41
|
+
export declare enum SysAsyncFileFormat {
|
|
42
42
|
XLSX = "xlsx",
|
|
43
43
|
CSV = "csv",
|
|
44
44
|
JSON = "json",
|
|
@@ -50,15 +50,15 @@ export declare enum FileFormat {
|
|
|
50
50
|
PNG = "png",
|
|
51
51
|
JPG = "jpg"
|
|
52
52
|
}
|
|
53
|
-
export interface
|
|
54
|
-
execute(ctx:
|
|
53
|
+
export interface ISysAsyncTaskHandler {
|
|
54
|
+
execute(ctx: SysAsyncTaskContext): Promise<void>;
|
|
55
55
|
}
|
|
56
|
-
export interface
|
|
56
|
+
export interface SysAsyncTaskContext {
|
|
57
57
|
task: SysAsyncTaskEntity;
|
|
58
58
|
}
|
|
59
|
-
export interface
|
|
59
|
+
export interface SysAsyncTaskHandlerConfig {
|
|
60
60
|
taskType: string;
|
|
61
|
-
handler:
|
|
61
|
+
handler: ISysAsyncTaskHandler;
|
|
62
62
|
maxRetries?: number;
|
|
63
63
|
priority?: number;
|
|
64
64
|
expireSeconds?: number;
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var
|
|
5
|
-
(function (
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
})(
|
|
13
|
-
var
|
|
14
|
-
(function (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
})(
|
|
3
|
+
exports.SysAsyncFileFormat = exports.SysAsyncTaskStatus = void 0;
|
|
4
|
+
var SysAsyncTaskStatus;
|
|
5
|
+
(function (SysAsyncTaskStatus) {
|
|
6
|
+
SysAsyncTaskStatus["PENDING"] = "PENDING";
|
|
7
|
+
SysAsyncTaskStatus["RUNNING"] = "RUNNING";
|
|
8
|
+
SysAsyncTaskStatus["SUCCEEDED"] = "SUCCEEDED";
|
|
9
|
+
SysAsyncTaskStatus["FAILED"] = "FAILED";
|
|
10
|
+
SysAsyncTaskStatus["CANCELLED"] = "CANCELLED";
|
|
11
|
+
SysAsyncTaskStatus["PAUSED"] = "PAUSED";
|
|
12
|
+
})(SysAsyncTaskStatus = exports.SysAsyncTaskStatus || (exports.SysAsyncTaskStatus = {}));
|
|
13
|
+
var SysAsyncFileFormat;
|
|
14
|
+
(function (SysAsyncFileFormat) {
|
|
15
|
+
SysAsyncFileFormat["XLSX"] = "xlsx";
|
|
16
|
+
SysAsyncFileFormat["CSV"] = "csv";
|
|
17
|
+
SysAsyncFileFormat["JSON"] = "json";
|
|
18
|
+
SysAsyncFileFormat["PDF"] = "pdf";
|
|
19
|
+
SysAsyncFileFormat["TXT"] = "txt";
|
|
20
|
+
SysAsyncFileFormat["XML"] = "xml";
|
|
21
|
+
SysAsyncFileFormat["ZIP"] = "zip";
|
|
22
|
+
SysAsyncFileFormat["HTML"] = "html";
|
|
23
|
+
SysAsyncFileFormat["PNG"] = "png";
|
|
24
|
+
SysAsyncFileFormat["JPG"] = "jpg";
|
|
25
|
+
})(SysAsyncFileFormat = exports.SysAsyncFileFormat || (exports.SysAsyncFileFormat = {}));
|
|
@@ -32,10 +32,10 @@ class AsyncTaskRunner {
|
|
|
32
32
|
const taskElement = taskList[i];
|
|
33
33
|
try {
|
|
34
34
|
await this.executeTask(taskElement);
|
|
35
|
-
taskElement.task_status = AsyncTaskModel_1.
|
|
35
|
+
taskElement.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.SUCCEEDED;
|
|
36
36
|
}
|
|
37
37
|
catch (error) {
|
|
38
|
-
taskElement.task_status = AsyncTaskModel_1.
|
|
38
|
+
taskElement.task_status = AsyncTaskModel_1.SysAsyncTaskStatus.FAILED;
|
|
39
39
|
taskElement.error_message = (0, errorToString_1.errorToString)(error);
|
|
40
40
|
}
|
|
41
41
|
}
|
|
@@ -63,7 +63,7 @@ let AsyncTaskRunnerService = class AsyncTaskRunnerService extends BaseService_1.
|
|
|
63
63
|
const { SystemDbName, SystemDbType } = global_config_1.GLOBAL_STATIC_CONFIG.getConfig();
|
|
64
64
|
const queryRes = await this.curdProService.executeCrudByCfg({
|
|
65
65
|
condition: {
|
|
66
|
-
task_status: AsyncTaskModel_1.
|
|
66
|
+
task_status: AsyncTaskModel_1.SysAsyncTaskStatus.PENDING
|
|
67
67
|
},
|
|
68
68
|
limit: 10
|
|
69
69
|
}, {
|
|
@@ -84,7 +84,7 @@ let AsyncTaskRunnerService = class AsyncTaskRunnerService extends BaseService_1.
|
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
data: {
|
|
87
|
-
task_status: AsyncTaskModel_1.
|
|
87
|
+
task_status: AsyncTaskModel_1.SysAsyncTaskStatus.RUNNING
|
|
88
88
|
}
|
|
89
89
|
}, {
|
|
90
90
|
sqlTable: SystemTables_1.SystemTables.sys_async_tasks,
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@ import { Controller, Inject, Get, Post, Query } from '@midwayjs/core';
|
|
|
3
3
|
import { Context } from '@midwayjs/koa';
|
|
4
4
|
import { BaseApiController } from '../base/BaseApiController';
|
|
5
5
|
import {AsyncTaskService} from "@/service/asyncTask/AsyncTaskService";
|
|
6
|
-
import {SysAsyncTaskEntity,
|
|
6
|
+
import {SysAsyncTaskEntity, SysAsyncTaskStatus} from "@/models/AsyncTaskModel";
|
|
7
7
|
import {KeysOfSimpleSQL} from "@/libs/crud-pro/models/keys";
|
|
8
8
|
import {SystemTables} from "@/models/SystemTables";
|
|
9
9
|
import {CommonException} from "@/libs/crud-pro/exceptions";
|
|
@@ -21,7 +21,7 @@ function fixCancelBodyData(body:any, id: number) {
|
|
|
21
21
|
|
|
22
22
|
// fix data
|
|
23
23
|
const dataObj: SysAsyncTaskEntity = (body.data || {}) as any;
|
|
24
|
-
dataObj.task_status =
|
|
24
|
+
dataObj.task_status = SysAsyncTaskStatus.CANCELLED;
|
|
25
25
|
body.data = dataObj;
|
|
26
26
|
}
|
|
27
27
|
|
|
@@ -33,7 +33,7 @@ function fixCreateBodyData(body:any) {
|
|
|
33
33
|
|
|
34
34
|
// fix data
|
|
35
35
|
const dataObj: SysAsyncTaskEntity = (body.data || {}) as any;
|
|
36
|
-
dataObj.task_status =
|
|
36
|
+
dataObj.task_status = SysAsyncTaskStatus.PENDING;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
39
|
|
package/src/index.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './controller/gateway/FileController';
|
|
|
8
8
|
export * from './controller/gateway/ProxyApiGatewayController';
|
|
9
9
|
export * from './controller/gateway/PublicApiController';
|
|
10
10
|
export * from './controller/gateway/StaticController';
|
|
11
|
+
export * from './controller/gateway/AsyncTaskController';
|
|
11
12
|
export * from './controller/helpers.controller';
|
|
12
13
|
export * from './controller/home.controller';
|
|
13
14
|
export * from './controller/manage/AnyApiMangeApi';
|
|
@@ -65,6 +66,8 @@ export * from './service/curd/CurdMixService';
|
|
|
65
66
|
export * from './service/curd/CurdProService';
|
|
66
67
|
export * from './service/proxyapi/ProxyApiLoadService';
|
|
67
68
|
export * from './service/proxyapi/ProxyApiService';
|
|
69
|
+
export * from './service/asyncTask/AsyncTaskService';
|
|
70
|
+
export * from './service/asyncTask/AsyncTaskRunnerService';
|
|
68
71
|
export * from './models/userSession';
|
|
69
72
|
export * from './models/bizmodels';
|
|
70
73
|
export * from './models/SystemEntities';
|
|
@@ -72,6 +75,7 @@ export * from './models/SystemPerm';
|
|
|
72
75
|
export * from './models/contextLogger';
|
|
73
76
|
export * from './models/devops';
|
|
74
77
|
export * from './models/SystemTables';
|
|
78
|
+
export * from './models/AsyncTaskModel';
|
|
75
79
|
|
|
76
80
|
|
|
77
81
|
export * from './libs/utils/common-dto';
|
|
@@ -4,16 +4,16 @@ export interface SysAsyncTaskEntity {
|
|
|
4
4
|
task_name: string;
|
|
5
5
|
task_description: string | null;
|
|
6
6
|
task_type: string;
|
|
7
|
-
task_status:
|
|
7
|
+
task_status: SysAsyncTaskStatus;
|
|
8
8
|
input_params: any;
|
|
9
9
|
output_result: any | null;
|
|
10
10
|
|
|
11
11
|
input_file_path: string | null;
|
|
12
|
-
input_file_format:
|
|
12
|
+
input_file_format: SysAsyncFileFormat | null;
|
|
13
13
|
input_file_size: number | null;
|
|
14
14
|
|
|
15
15
|
output_file_path: string | null;
|
|
16
|
-
output_file_format:
|
|
16
|
+
output_file_format: SysAsyncFileFormat | null;
|
|
17
17
|
output_file_size: number | null;
|
|
18
18
|
|
|
19
19
|
input_total_records: number | null;
|
|
@@ -34,7 +34,7 @@ export interface SysAsyncTaskEntity {
|
|
|
34
34
|
expired_at: Date | null;
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export enum
|
|
37
|
+
export enum SysAsyncTaskStatus {
|
|
38
38
|
PENDING = 'PENDING', // 等待中,还未进入排队
|
|
39
39
|
RUNNING = 'RUNNING', // 运行中
|
|
40
40
|
SUCCEEDED = 'SUCCEEDED',
|
|
@@ -43,7 +43,7 @@ export enum TaskStatus {
|
|
|
43
43
|
PAUSED = 'PAUSED', // 暂停
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
export enum
|
|
46
|
+
export enum SysAsyncFileFormat {
|
|
47
47
|
XLSX = 'xlsx',
|
|
48
48
|
CSV = 'csv',
|
|
49
49
|
JSON = 'json',
|
|
@@ -57,17 +57,17 @@ export enum FileFormat {
|
|
|
57
57
|
}
|
|
58
58
|
|
|
59
59
|
|
|
60
|
-
export interface
|
|
61
|
-
execute(ctx:
|
|
60
|
+
export interface ISysAsyncTaskHandler {
|
|
61
|
+
execute(ctx: SysAsyncTaskContext): Promise<void>;
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
export interface
|
|
64
|
+
export interface SysAsyncTaskContext {
|
|
65
65
|
task: SysAsyncTaskEntity;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
export interface
|
|
68
|
+
export interface SysAsyncTaskHandlerConfig {
|
|
69
69
|
taskType: string;
|
|
70
|
-
handler:
|
|
70
|
+
handler: ISysAsyncTaskHandler;
|
|
71
71
|
maxRetries?: number;
|
|
72
72
|
priority?: number;
|
|
73
73
|
expireSeconds?: number;
|
|
@@ -3,7 +3,7 @@ import {Context} from '@midwayjs/koa';
|
|
|
3
3
|
import {BaseService} from "@/service/base/BaseService";
|
|
4
4
|
import {IScheduleService} from "@/interface";
|
|
5
5
|
import {CurdProService} from "@/service/curd/CurdProService";
|
|
6
|
-
import {
|
|
6
|
+
import {ISysAsyncTaskHandler, SysAsyncTaskEntity, SysAsyncTaskStatus} from "@/models/AsyncTaskModel";
|
|
7
7
|
import {GLOBAL_STATIC_CONFIG} from "@/libs/global-config/global-config";
|
|
8
8
|
import {SystemTables} from "@/models/SystemTables";
|
|
9
9
|
import {KeysOfSimpleSQL} from "@/libs/crud-pro/models/keys";
|
|
@@ -12,7 +12,7 @@ import {errorToString} from "@/libs/utils/errorToString";
|
|
|
12
12
|
|
|
13
13
|
class AsyncTaskRunner {
|
|
14
14
|
isBusy: boolean = false;
|
|
15
|
-
taskHandlerMap: Map<string,
|
|
15
|
+
taskHandlerMap: Map<string, ISysAsyncTaskHandler> = new Map();
|
|
16
16
|
|
|
17
17
|
async executeTaskList(taskList: SysAsyncTaskEntity[]) {
|
|
18
18
|
if (!taskList || taskList.length === 0) {
|
|
@@ -24,9 +24,9 @@ class AsyncTaskRunner {
|
|
|
24
24
|
const taskElement = taskList[i];
|
|
25
25
|
try {
|
|
26
26
|
await this.executeTask(taskElement);
|
|
27
|
-
taskElement.task_status =
|
|
27
|
+
taskElement.task_status = SysAsyncTaskStatus.SUCCEEDED;
|
|
28
28
|
} catch (error) {
|
|
29
|
-
taskElement.task_status =
|
|
29
|
+
taskElement.task_status = SysAsyncTaskStatus.FAILED;
|
|
30
30
|
taskElement.error_message = errorToString(error)
|
|
31
31
|
}
|
|
32
32
|
}
|
|
@@ -73,7 +73,7 @@ export class AsyncTaskRunnerService extends BaseService implements IScheduleServ
|
|
|
73
73
|
|
|
74
74
|
const queryRes = await this.curdProService.executeCrudByCfg({
|
|
75
75
|
condition: {
|
|
76
|
-
task_status:
|
|
76
|
+
task_status: SysAsyncTaskStatus.PENDING
|
|
77
77
|
},
|
|
78
78
|
limit: 10
|
|
79
79
|
},{
|
|
@@ -98,7 +98,7 @@ export class AsyncTaskRunnerService extends BaseService implements IScheduleServ
|
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
data: {
|
|
101
|
-
task_status:
|
|
101
|
+
task_status: SysAsyncTaskStatus.RUNNING
|
|
102
102
|
}
|
|
103
103
|
},{
|
|
104
104
|
sqlTable: SystemTables.sys_async_tasks,
|