verteilen-core 1.2.22 → 1.3.1
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/interface/base.d.ts +26 -12
- package/dist/interface/enum.d.ts +12 -5
- package/dist/interface/enum.js +14 -6
- package/dist/interface/struct.d.ts +9 -1
- package/dist/interface.d.ts +1 -1
- package/dist/interface.js +1 -1
- package/dist/script/execute/base.d.ts +8 -6
- package/dist/script/execute/base.js +21 -8
- package/dist/script/execute/index.d.ts +8 -0
- package/dist/script/execute/index.js +24 -0
- package/dist/script/execute/region_job.d.ts +9 -1
- package/dist/script/execute/region_job.js +62 -2
- package/dist/script/execute/region_project.d.ts +3 -3
- package/dist/script/execute/region_project.js +31 -6
- package/dist/script/execute/region_subtask.d.ts +8 -1
- package/dist/script/execute/region_subtask.js +37 -2
- package/dist/script/execute/region_task.d.ts +32 -4
- package/dist/script/execute/region_task.js +270 -8
- package/dist/script/execute/runner.d.ts +1 -10
- package/dist/script/execute/runner.js +0 -242
- package/dist/script/execute_manager.js +55 -53
- package/dist/server/detail.js +3 -3
- package/dist/server/io.d.ts +5 -1
- package/dist/server/io.js +13 -5
- package/dist/server/module/project.d.ts +14 -0
- package/dist/server/module/project.js +64 -0
- package/dist/server/module/service.d.ts +5 -0
- package/dist/server/module/service.js +10 -0
- package/dist/server/server.d.ts +2 -0
- package/dist/server/server.js +7 -0
- package/dist/server.d.ts +2 -0
- package/dist/server.js +2 -0
- package/dist/util/console_handle.js +8 -8
- package/dist/util/log_handle.js +4 -4
- package/package.json +1 -1
- package/src/interface/base.ts +104 -31
- package/src/interface/enum.ts +6 -2
- package/src/interface/struct.ts +11 -1
- package/src/interface.ts +1 -1
- package/src/script/execute/base.ts +45 -29
- package/src/script/execute/feedback.ts +1 -3
- package/src/script/execute/region_job.ts +66 -2
- package/src/script/execute/region_project.ts +42 -5
- package/src/script/execute/region_subtask.ts +36 -2
- package/src/script/execute/region_task.ts +348 -9
- package/src/script/execute/runner.ts +1 -306
- package/src/script/execute_manager.ts +61 -61
- package/src/server/detail.ts +8 -3
- package/src/server/io.ts +29 -6
- package/src/server/module/project.ts +82 -0
- package/src/server/module/service.ts +14 -0
- package/src/server/plugin.ts +9 -0
- package/src/server/server.ts +34 -1
- package/src/server.ts +3 -1
- package/src/util/console_handle.ts +8 -8
- package/src/util/log_handle.ts +4 -4
- /package/src/script/execute/{interface.ts → index.ts} +0 -0
package/dist/interface/base.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
import { DataType, DataTypeBase } from "./enum";
|
|
1
|
+
import { DataType, DataTypeBase, ServiceMode } from "./enum";
|
|
2
2
|
import { ACLType, LocalPermission as LocalPermission } from "./server";
|
|
3
|
+
import { TaskLogic } from "./struct";
|
|
3
4
|
export interface DatabaseConfigTrigger {
|
|
4
5
|
types: Array<DataTypeBase>;
|
|
5
6
|
}
|
|
7
|
+
export interface DataHeader {
|
|
8
|
+
uuid: string;
|
|
9
|
+
}
|
|
6
10
|
export interface DatabaseContainer {
|
|
7
11
|
name: string;
|
|
8
12
|
meta?: any;
|
|
@@ -17,17 +21,25 @@ export interface Property {
|
|
|
17
21
|
expression: string;
|
|
18
22
|
deep?: number;
|
|
19
23
|
}
|
|
20
|
-
export interface
|
|
21
|
-
|
|
24
|
+
export interface Service extends DataHeader {
|
|
25
|
+
title: string;
|
|
26
|
+
description: string;
|
|
27
|
+
meta: any;
|
|
28
|
+
type: ServiceMode;
|
|
29
|
+
timer: string;
|
|
30
|
+
project: string;
|
|
31
|
+
permission?: LocalPermission;
|
|
32
|
+
acl?: ACLType;
|
|
33
|
+
}
|
|
34
|
+
export interface Database extends DataHeader {
|
|
22
35
|
title: string;
|
|
23
36
|
canWrite: boolean;
|
|
24
37
|
containers: Array<DatabaseContainer>;
|
|
25
38
|
permission?: LocalPermission;
|
|
26
39
|
}
|
|
27
|
-
export interface Job {
|
|
40
|
+
export interface Job extends DataHeader {
|
|
28
41
|
index?: number;
|
|
29
42
|
meta?: any;
|
|
30
|
-
uuid: string;
|
|
31
43
|
runtime_uuid?: string;
|
|
32
44
|
category: number;
|
|
33
45
|
type: number;
|
|
@@ -37,9 +49,9 @@ export interface Job {
|
|
|
37
49
|
boolean_args: Array<boolean>;
|
|
38
50
|
id_args: Array<boolean>;
|
|
39
51
|
permission?: LocalPermission;
|
|
52
|
+
acl?: ACLType;
|
|
40
53
|
}
|
|
41
|
-
export interface Task {
|
|
42
|
-
uuid: string;
|
|
54
|
+
export interface Task extends DataHeader {
|
|
43
55
|
title: string;
|
|
44
56
|
description: string;
|
|
45
57
|
setupjob: boolean;
|
|
@@ -48,23 +60,25 @@ export interface Task {
|
|
|
48
60
|
multi: boolean;
|
|
49
61
|
multiKey: string;
|
|
50
62
|
properties: Array<Property>;
|
|
63
|
+
logic?: TaskLogic;
|
|
51
64
|
jobs: Array<Job>;
|
|
65
|
+
jobs_uuid: Array<string>;
|
|
52
66
|
permission?: LocalPermission;
|
|
67
|
+
acl?: ACLType;
|
|
53
68
|
}
|
|
54
|
-
export interface Project {
|
|
69
|
+
export interface Project extends DataHeader {
|
|
55
70
|
owner?: string;
|
|
56
|
-
uuid: string;
|
|
57
71
|
title: string;
|
|
58
72
|
description?: string;
|
|
59
73
|
database_uuid: string;
|
|
60
74
|
database?: Database;
|
|
61
|
-
|
|
75
|
+
tasks: Array<Task>;
|
|
76
|
+
tasks_uuid: Array<string>;
|
|
62
77
|
permission?: LocalPermission;
|
|
63
78
|
acl?: ACLType;
|
|
64
79
|
}
|
|
65
|
-
export interface Node {
|
|
80
|
+
export interface Node extends DataHeader {
|
|
66
81
|
cluster: boolean;
|
|
67
|
-
uuid: string;
|
|
68
82
|
parent?: string;
|
|
69
83
|
url: string;
|
|
70
84
|
permission?: LocalPermission;
|
package/dist/interface/enum.d.ts
CHANGED
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
export declare enum TaskLogicType {
|
|
2
|
+
GROUP = 0,
|
|
3
|
+
ADD = 1,
|
|
4
|
+
OR = 2
|
|
5
|
+
}
|
|
1
6
|
export declare enum SocketState {
|
|
2
7
|
CONNECTING = 0,
|
|
3
8
|
OPEN = 1,
|
|
@@ -95,11 +100,13 @@ export declare enum RenderUpdateType {
|
|
|
95
100
|
}
|
|
96
101
|
export declare enum RecordType {
|
|
97
102
|
PROJECT = 0,
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
+
TASK = 1,
|
|
104
|
+
JOB = 2,
|
|
105
|
+
DATABASE = 3,
|
|
106
|
+
NODE = 4,
|
|
107
|
+
LOG = 5,
|
|
108
|
+
LIB = 6,
|
|
109
|
+
USER = 7
|
|
103
110
|
}
|
|
104
111
|
export declare enum JavascriptLib {
|
|
105
112
|
ALL = 127,
|
package/dist/interface/enum.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DatabaseTemplateText = exports.ProjectTemplateText = exports.JobType2Text = exports.JobTypeText = exports.JobResultText = exports.ConnectionText = exports.JobCategoryText = exports.ExecuteStateText = exports.DataTypeText = exports.ServiceMode = exports.JavascriptLib = exports.RecordType = exports.RenderUpdateType = exports.ExecuteState = exports.DatabaseTemplate = exports.ProjectTemplate = exports.JobType2 = exports.JobType = exports.ConditionResult = exports.JobCategory = exports.FrontendUpdate = exports.ResourceType = exports.DataTypeBase = exports.BackendType = exports.DataType = exports.SocketState = void 0;
|
|
3
|
+
exports.DatabaseTemplateText = exports.ProjectTemplateText = exports.JobType2Text = exports.JobTypeText = exports.JobResultText = exports.ConnectionText = exports.JobCategoryText = exports.ExecuteStateText = exports.DataTypeText = exports.ServiceMode = exports.JavascriptLib = exports.RecordType = exports.RenderUpdateType = exports.ExecuteState = exports.DatabaseTemplate = exports.ProjectTemplate = exports.JobType2 = exports.JobType = exports.ConditionResult = exports.JobCategory = exports.FrontendUpdate = exports.ResourceType = exports.DataTypeBase = exports.BackendType = exports.DataType = exports.SocketState = exports.TaskLogicType = void 0;
|
|
4
|
+
var TaskLogicType;
|
|
5
|
+
(function (TaskLogicType) {
|
|
6
|
+
TaskLogicType[TaskLogicType["GROUP"] = 0] = "GROUP";
|
|
7
|
+
TaskLogicType[TaskLogicType["ADD"] = 1] = "ADD";
|
|
8
|
+
TaskLogicType[TaskLogicType["OR"] = 2] = "OR";
|
|
9
|
+
})(TaskLogicType || (exports.TaskLogicType = TaskLogicType = {}));
|
|
4
10
|
var SocketState;
|
|
5
11
|
(function (SocketState) {
|
|
6
12
|
SocketState[SocketState["CONNECTING"] = 0] = "CONNECTING";
|
|
@@ -113,11 +119,13 @@ var RenderUpdateType;
|
|
|
113
119
|
var RecordType;
|
|
114
120
|
(function (RecordType) {
|
|
115
121
|
RecordType[RecordType["PROJECT"] = 0] = "PROJECT";
|
|
116
|
-
RecordType[RecordType["
|
|
117
|
-
RecordType[RecordType["
|
|
118
|
-
RecordType[RecordType["
|
|
119
|
-
RecordType[RecordType["
|
|
120
|
-
RecordType[RecordType["
|
|
122
|
+
RecordType[RecordType["TASK"] = 1] = "TASK";
|
|
123
|
+
RecordType[RecordType["JOB"] = 2] = "JOB";
|
|
124
|
+
RecordType[RecordType["DATABASE"] = 3] = "DATABASE";
|
|
125
|
+
RecordType[RecordType["NODE"] = 4] = "NODE";
|
|
126
|
+
RecordType[RecordType["LOG"] = 5] = "LOG";
|
|
127
|
+
RecordType[RecordType["LIB"] = 6] = "LIB";
|
|
128
|
+
RecordType[RecordType["USER"] = 7] = "USER";
|
|
121
129
|
})(RecordType || (exports.RecordType = RecordType = {}));
|
|
122
130
|
var JavascriptLib;
|
|
123
131
|
(function (JavascriptLib) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DatabaseContainer, Project } from "./base";
|
|
2
2
|
import ws from 'ws';
|
|
3
|
-
import { ServiceMode } from "./enum";
|
|
3
|
+
import { ServiceMode, TaskLogicType } from "./enum";
|
|
4
4
|
import { ACLType, LocalPermission } from "./server";
|
|
5
5
|
type ProjectCall = (p: Project) => Project;
|
|
6
6
|
type DatabaseCall = () => Array<DatabaseContainer>;
|
|
@@ -186,4 +186,12 @@ export interface BuildinAssets {
|
|
|
186
186
|
export interface ServiceConfig {
|
|
187
187
|
mode: ServiceMode;
|
|
188
188
|
}
|
|
189
|
+
export interface TaskLogicUnit {
|
|
190
|
+
type: TaskLogicType;
|
|
191
|
+
job: string;
|
|
192
|
+
children: Array<TaskLogicUnit>;
|
|
193
|
+
}
|
|
194
|
+
export interface TaskLogic {
|
|
195
|
+
group: Array<TaskLogicUnit>;
|
|
196
|
+
}
|
|
189
197
|
export {};
|
package/dist/interface.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export * from './interface/struct';
|
|
|
19
19
|
export * from './interface/table';
|
|
20
20
|
export * from './interface/ui';
|
|
21
21
|
export * as I18N from './plugins/i18n';
|
|
22
|
-
export * as Execute_PART from './script/execute
|
|
22
|
+
export * as Execute_PART from './script/execute';
|
|
23
23
|
export * as Execute_ConsoleManager from './script/console_manager';
|
|
24
24
|
export * as Execute_ConsoleServerManager from './script/console_server_manager';
|
|
25
25
|
export * as Execute_ExecuteManager from './script/execute_manager';
|
package/dist/interface.js
CHANGED
|
@@ -58,7 +58,7 @@ __exportStar(require("./interface/struct"), exports);
|
|
|
58
58
|
__exportStar(require("./interface/table"), exports);
|
|
59
59
|
__exportStar(require("./interface/ui"), exports);
|
|
60
60
|
exports.I18N = __importStar(require("./plugins/i18n"));
|
|
61
|
-
exports.Execute_PART = __importStar(require("./script/execute
|
|
61
|
+
exports.Execute_PART = __importStar(require("./script/execute"));
|
|
62
62
|
exports.Execute_ConsoleManager = __importStar(require("./script/console_manager"));
|
|
63
63
|
exports.Execute_ConsoleServerManager = __importStar(require("./script/console_server_manager"));
|
|
64
64
|
exports.Execute_ExecuteManager = __importStar(require("./script/execute_manager"));
|
|
@@ -1,18 +1,13 @@
|
|
|
1
1
|
import { CronJobState, ExecuteProxy, ExecuteState, Job, Libraries, Messager, Database, Project, Record, Task, WebsocketPack, WorkState } from "../../interface";
|
|
2
2
|
import { WebsocketManager } from "../socket_manager";
|
|
3
3
|
import { Util_Parser } from './util_parser';
|
|
4
|
+
import { Region_Project } from './region_project';
|
|
4
5
|
export declare class ExecuteManager_Base {
|
|
5
6
|
uuid: string;
|
|
6
7
|
name: string;
|
|
7
8
|
record: Record;
|
|
8
|
-
current_t: Task | undefined;
|
|
9
|
-
current_p: Project | undefined;
|
|
10
9
|
current_projects: Array<Project>;
|
|
11
10
|
current_nodes: Array<WebsocketPack>;
|
|
12
|
-
current_cron: Array<CronJobState>;
|
|
13
|
-
current_job: Array<WorkState>;
|
|
14
|
-
current_multithread: number;
|
|
15
|
-
current_task_count: number;
|
|
16
11
|
state: ExecuteState;
|
|
17
12
|
t_state: ExecuteState;
|
|
18
13
|
jobstack: number;
|
|
@@ -22,7 +17,14 @@ export declare class ExecuteManager_Base {
|
|
|
22
17
|
localPara: Database | undefined;
|
|
23
18
|
websocket_manager: WebsocketManager;
|
|
24
19
|
messager_log: Messager;
|
|
20
|
+
runner: Region_Project | undefined;
|
|
25
21
|
constructor(_name: string, _websocket_manager: WebsocketManager, _messager_log: Messager, _record: Record);
|
|
22
|
+
get current_p(): Project | undefined;
|
|
23
|
+
get current_t(): Task | undefined;
|
|
24
|
+
get current_multithread(): number;
|
|
25
|
+
get current_task_count(): number;
|
|
26
|
+
get current_cron(): Array<CronJobState>;
|
|
27
|
+
get current_job(): Array<WorkState>;
|
|
26
28
|
protected sync_local_para: (target: Database) => void;
|
|
27
29
|
protected sync_para: (target: Database, source: WebsocketPack) => void;
|
|
28
30
|
protected release: (source: WebsocketPack) => void;
|
|
@@ -8,14 +8,8 @@ class ExecuteManager_Base {
|
|
|
8
8
|
uuid;
|
|
9
9
|
name;
|
|
10
10
|
record;
|
|
11
|
-
current_t = undefined;
|
|
12
|
-
current_p = undefined;
|
|
13
11
|
current_projects = [];
|
|
14
12
|
current_nodes = [];
|
|
15
|
-
current_cron = [];
|
|
16
|
-
current_job = [];
|
|
17
|
-
current_multithread = 1;
|
|
18
|
-
current_task_count = -1;
|
|
19
13
|
state = interface_1.ExecuteState.NONE;
|
|
20
14
|
t_state = interface_1.ExecuteState.NONE;
|
|
21
15
|
jobstack = 0;
|
|
@@ -25,6 +19,7 @@ class ExecuteManager_Base {
|
|
|
25
19
|
localPara = undefined;
|
|
26
20
|
websocket_manager;
|
|
27
21
|
messager_log;
|
|
22
|
+
runner;
|
|
28
23
|
constructor(_name, _websocket_manager, _messager_log, _record) {
|
|
29
24
|
this.name = _name;
|
|
30
25
|
this.uuid = (0, uuid_1.v6)();
|
|
@@ -32,6 +27,24 @@ class ExecuteManager_Base {
|
|
|
32
27
|
this.websocket_manager = _websocket_manager;
|
|
33
28
|
this.messager_log = _messager_log;
|
|
34
29
|
}
|
|
30
|
+
get current_p() {
|
|
31
|
+
return this.runner?.project;
|
|
32
|
+
}
|
|
33
|
+
get current_t() {
|
|
34
|
+
return this.runner?.runner?.task;
|
|
35
|
+
}
|
|
36
|
+
get current_multithread() {
|
|
37
|
+
return this.runner?.runner?.multithread ?? 1;
|
|
38
|
+
}
|
|
39
|
+
get current_task_count() {
|
|
40
|
+
return this.runner?.runner?.task_count ?? 0;
|
|
41
|
+
}
|
|
42
|
+
get current_cron() {
|
|
43
|
+
return this.runner?.runner?.cron ?? [];
|
|
44
|
+
}
|
|
45
|
+
get current_job() {
|
|
46
|
+
return this.runner?.runner?.job ?? [];
|
|
47
|
+
}
|
|
35
48
|
sync_local_para = (target) => {
|
|
36
49
|
this.current_nodes.forEach(x => this.sync_para(target, x));
|
|
37
50
|
this.proxy?.updateDatabase(target);
|
|
@@ -76,7 +89,7 @@ class ExecuteManager_Base {
|
|
|
76
89
|
return false;
|
|
77
90
|
}
|
|
78
91
|
projects.forEach(x => {
|
|
79
|
-
x.
|
|
92
|
+
x.tasks.forEach(t => {
|
|
80
93
|
if (t.cronjob) {
|
|
81
94
|
const index = x.database?.containers.findIndex(x => x.name == t.cronjobKey && x.type == interface_1.DataType.Number) ?? -1;
|
|
82
95
|
if (index == -1) {
|
|
@@ -110,7 +123,7 @@ class ExecuteManager_Base {
|
|
|
110
123
|
filter_lib = (projects, lib) => {
|
|
111
124
|
const r = { libs: [] };
|
|
112
125
|
projects.forEach(x => {
|
|
113
|
-
x.
|
|
126
|
+
x.tasks.forEach(y => {
|
|
114
127
|
y.jobs.forEach(z => {
|
|
115
128
|
let code = -1;
|
|
116
129
|
if ((z.category == interface_1.JobCategory.Execution && z.type == interface_1.JobType.JAVASCRIPT) || (z.category == interface_1.JobCategory.Condition && z.type == interface_1.JobType2.JAVASCRIPT))
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./base"), exports);
|
|
18
|
+
__exportStar(require("./feedback"), exports);
|
|
19
|
+
__exportStar(require("./region_job"), exports);
|
|
20
|
+
__exportStar(require("./region_project"), exports);
|
|
21
|
+
__exportStar(require("./region_subtask"), exports);
|
|
22
|
+
__exportStar(require("./region_task"), exports);
|
|
23
|
+
__exportStar(require("./runner"), exports);
|
|
24
|
+
__exportStar(require("./util_parser"), exports);
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
+
import { Job, Task, WebsocketPack } from "../../interface";
|
|
1
2
|
import { ExecuteManager } from "../execute_manager";
|
|
2
3
|
export declare class Region_Job {
|
|
3
4
|
target: ExecuteManager;
|
|
4
|
-
|
|
5
|
+
task: Task;
|
|
6
|
+
job: Job;
|
|
7
|
+
wss: WebsocketPack;
|
|
8
|
+
constructor(target: ExecuteManager, task: Task, job: Job, wss: WebsocketPack);
|
|
9
|
+
RUN: () => void;
|
|
10
|
+
private string_args_transform;
|
|
11
|
+
private property_update;
|
|
12
|
+
private database_update;
|
|
5
13
|
}
|
|
@@ -1,10 +1,70 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Region_Job = void 0;
|
|
4
|
+
const interface_1 = require("../../interface");
|
|
5
|
+
const util_parser_1 = require("./util_parser");
|
|
4
6
|
class Region_Job {
|
|
5
7
|
target;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
task;
|
|
9
|
+
job;
|
|
10
|
+
wss;
|
|
11
|
+
constructor(target, task, job, wss) {
|
|
12
|
+
this.target = target;
|
|
13
|
+
this.task = task;
|
|
14
|
+
this.job = job;
|
|
15
|
+
this.wss = wss;
|
|
8
16
|
}
|
|
17
|
+
RUN = () => {
|
|
18
|
+
const n = this.job.index;
|
|
19
|
+
this.target.messager_log(`[Execute] Job Start ${n} ${this.job.uuid} ${this.wss.uuid}`);
|
|
20
|
+
this.target.proxy?.executeJobStart([this.job, n, this.wss.uuid]);
|
|
21
|
+
this.string_args_transform(this.task, this.job, this.target.localPara, n);
|
|
22
|
+
const h = {
|
|
23
|
+
name: 'execute_job',
|
|
24
|
+
channel: this.target.uuid,
|
|
25
|
+
data: this.job
|
|
26
|
+
};
|
|
27
|
+
this.wss.current_job.push(this.job.runtime_uuid);
|
|
28
|
+
const stringdata = JSON.stringify(h);
|
|
29
|
+
this.wss.websocket.send(stringdata);
|
|
30
|
+
this.target.jobstack = this.target.jobstack + 1;
|
|
31
|
+
};
|
|
32
|
+
string_args_transform = (task, job, localPara, n) => {
|
|
33
|
+
let e = this.database_update(localPara, n);
|
|
34
|
+
e = this.property_update(task, e);
|
|
35
|
+
for (let i = 0; i < job.string_args.length; i++) {
|
|
36
|
+
const b = job.string_args[i];
|
|
37
|
+
if (b == null || b == undefined || b.length == 0)
|
|
38
|
+
continue;
|
|
39
|
+
if (job.category == interface_1.JobCategory.Execution && job.type == interface_1.JobType.CREATE_FILE && i == 1)
|
|
40
|
+
continue;
|
|
41
|
+
job.string_args[i] = e.replacePara(job.string_args[i]);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
property_update = (task, e) => {
|
|
45
|
+
for (let j = 0; j < task.properties.length; j++) {
|
|
46
|
+
const target = task.properties[j];
|
|
47
|
+
const times = target.deep ? target.deep : 1;
|
|
48
|
+
let act = target.expression;
|
|
49
|
+
for (let k = 0; k < times; k++) {
|
|
50
|
+
act = e.replacePara(`%{${act}}%`);
|
|
51
|
+
}
|
|
52
|
+
e.paras.push({ key: task.properties[j].name, value: act });
|
|
53
|
+
}
|
|
54
|
+
return e;
|
|
55
|
+
};
|
|
56
|
+
database_update = (localPara, n) => {
|
|
57
|
+
const e = new util_parser_1.Util_Parser([...util_parser_1.Util_Parser.to_keyvalue(localPara)]);
|
|
58
|
+
if (n != undefined) {
|
|
59
|
+
e.paras.push({ key: 'ck', value: n.toString() });
|
|
60
|
+
}
|
|
61
|
+
localPara.containers.forEach((c, index) => {
|
|
62
|
+
if (c.type != interface_1.DataType.Expression)
|
|
63
|
+
return;
|
|
64
|
+
c.value = e.replacePara(`%{${c.meta}}%`);
|
|
65
|
+
e.paras.find(p => p.key == c.name).value = c.value;
|
|
66
|
+
});
|
|
67
|
+
return e;
|
|
68
|
+
};
|
|
9
69
|
}
|
|
10
70
|
exports.Region_Job = Region_Job;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Project } from "../../interface";
|
|
2
2
|
import { ExecuteManager } from "../execute_manager";
|
|
3
3
|
import { Region_Task } from "./region_task";
|
|
4
4
|
export declare class Region_Project {
|
|
5
5
|
target: ExecuteManager;
|
|
6
|
-
state: ExecuteState;
|
|
7
6
|
project: Project;
|
|
8
|
-
|
|
7
|
+
runner: Region_Task | undefined;
|
|
9
8
|
constructor(_target: ExecuteManager, _project: Project);
|
|
9
|
+
RUN: () => void;
|
|
10
10
|
}
|
|
@@ -5,16 +5,41 @@ const interface_1 = require("../../interface");
|
|
|
5
5
|
const region_task_1 = require("./region_task");
|
|
6
6
|
class Region_Project {
|
|
7
7
|
target;
|
|
8
|
-
state;
|
|
9
8
|
project;
|
|
10
|
-
|
|
9
|
+
runner;
|
|
11
10
|
constructor(_target, _project) {
|
|
12
11
|
this.project = _project;
|
|
13
12
|
this.target = _target;
|
|
14
|
-
this.state = _project.task.length > 0 ? interface_1.ExecuteState.NONE : interface_1.ExecuteState.SKIP;
|
|
15
|
-
if (_project.task.length > 0) {
|
|
16
|
-
this.task = new region_task_1.Region_Task(_target, _project.task[0]);
|
|
17
|
-
}
|
|
18
13
|
}
|
|
14
|
+
RUN = () => {
|
|
15
|
+
if (this.runner == undefined && this.project.tasks.length > 0 && this.target.t_state != interface_1.ExecuteState.FINISH) {
|
|
16
|
+
this.runner = new region_task_1.Region_Task(this.target, this.project.tasks[0]);
|
|
17
|
+
this.target.messager_log(`[Execute] Task Start ${this.runner.task.uuid}`);
|
|
18
|
+
this.target.messager_log(`[Execute] Task cron state: ${this.runner.task.cronjob}`);
|
|
19
|
+
}
|
|
20
|
+
else if (this.project.tasks.length == 0) {
|
|
21
|
+
this.runner = undefined;
|
|
22
|
+
}
|
|
23
|
+
if (this.runner != undefined) {
|
|
24
|
+
this.runner.RUN();
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
const index = this.target.current_projects.findIndex(x => x.uuid == this.project.uuid);
|
|
28
|
+
if (index < this.target.current_projects.length - 1) {
|
|
29
|
+
this.target.messager_log(`[Execute] Project Finish ${this.project.uuid}`);
|
|
30
|
+
this.target.proxy?.executeProjectFinish([this.project, index]);
|
|
31
|
+
this.target.runner = new Region_Project(this.target, this.target.current_projects[index + 1]);
|
|
32
|
+
this.target.proxy?.executeProjectStart([this.project, index + 1]);
|
|
33
|
+
this.target.t_state = interface_1.ExecuteState.NONE;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.target.messager_log(`[Execute] Project Finish ${this.project.uuid}`);
|
|
37
|
+
this.target.proxy?.executeProjectFinish([this.project, index]);
|
|
38
|
+
this.target.runner = undefined;
|
|
39
|
+
this.target.state = interface_1.ExecuteState.FINISH;
|
|
40
|
+
this.target.t_state = interface_1.ExecuteState.NONE;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
19
44
|
}
|
|
20
45
|
exports.Region_Project = Region_Project;
|
|
@@ -1,5 +1,12 @@
|
|
|
1
|
+
import { WebsocketPack, CronJobState, Task } from "../../interface";
|
|
1
2
|
import { ExecuteManager } from "../execute_manager";
|
|
3
|
+
import { Region_Job } from "./region_job";
|
|
2
4
|
export declare class Region_Subtask {
|
|
3
5
|
target: ExecuteManager;
|
|
4
|
-
|
|
6
|
+
work: CronJobState;
|
|
7
|
+
ns: WebsocketPack;
|
|
8
|
+
runner: Region_Job | undefined;
|
|
9
|
+
constructor(target: ExecuteManager, work: CronJobState, ns: WebsocketPack);
|
|
10
|
+
get task(): Task;
|
|
11
|
+
RUN: () => void;
|
|
5
12
|
}
|
|
@@ -1,10 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.Region_Subtask = void 0;
|
|
4
|
+
const interface_1 = require("../../interface");
|
|
5
|
+
const region_job_1 = require("./region_job");
|
|
4
6
|
class Region_Subtask {
|
|
5
7
|
target;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
+
work;
|
|
9
|
+
ns;
|
|
10
|
+
runner;
|
|
11
|
+
constructor(target, work, ns) {
|
|
12
|
+
this.target = target;
|
|
13
|
+
this.work = work;
|
|
14
|
+
this.ns = ns;
|
|
8
15
|
}
|
|
16
|
+
get task() {
|
|
17
|
+
return this.target.current_t;
|
|
18
|
+
}
|
|
19
|
+
RUN = () => {
|
|
20
|
+
if (this.ns.current_job.length < this.target.current_multithread) {
|
|
21
|
+
const rindex = this.work.work.findIndex(x => x.state == interface_1.ExecuteState.RUNNING);
|
|
22
|
+
if (rindex != -1)
|
|
23
|
+
return;
|
|
24
|
+
const index = this.work.work.findIndex(x => x.state == interface_1.ExecuteState.NONE);
|
|
25
|
+
if (index == 0)
|
|
26
|
+
this.target.proxy?.executeSubtaskStart([this.task, this.work.id, this.ns.uuid]);
|
|
27
|
+
if (index == -1)
|
|
28
|
+
return;
|
|
29
|
+
this.work.work[index].state = interface_1.ExecuteState.RUNNING;
|
|
30
|
+
try {
|
|
31
|
+
const job = JSON.parse(JSON.stringify(this.task.jobs[index]));
|
|
32
|
+
job.index = this.work.id;
|
|
33
|
+
job.runtime_uuid = this.work.work[index].runtime;
|
|
34
|
+
if (this.runner == undefined) {
|
|
35
|
+
this.runner = new region_job_1.Region_Job(this.target, this.task, job, this.ns);
|
|
36
|
+
}
|
|
37
|
+
this.runner.RUN();
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
this.target.messager_log(`[ExecuteCronTask Error] UUID: ${this.task.uuid}, Job count: ${this.task.jobs.length}, index: ${index}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
};
|
|
9
44
|
}
|
|
10
45
|
exports.Region_Subtask = Region_Subtask;
|
|
@@ -1,10 +1,38 @@
|
|
|
1
|
-
import { ExecuteState, Task } from "../../interface";
|
|
1
|
+
import { CronJobState, Database, ExecuteState, Project, Task, WebsocketPack, WorkState } from "../../interface";
|
|
2
2
|
import { ExecuteManager } from "../execute_manager";
|
|
3
|
+
import { Region_Job } from "./region_job";
|
|
4
|
+
import { Region_Project } from "./region_project";
|
|
3
5
|
import { Region_Subtask } from "./region_subtask";
|
|
6
|
+
import { Util_Parser } from "./util_parser";
|
|
4
7
|
export declare class Region_Task {
|
|
5
8
|
target: ExecuteManager;
|
|
6
|
-
state: ExecuteState;
|
|
7
9
|
task: Task;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
multithread: number;
|
|
11
|
+
task_count: number;
|
|
12
|
+
cron: Array<CronJobState>;
|
|
13
|
+
job: Array<WorkState>;
|
|
14
|
+
runners: Array<Region_Subtask | undefined>;
|
|
15
|
+
jrunners: Array<Region_Job | undefined>;
|
|
16
|
+
constructor(target: ExecuteManager, task: Task);
|
|
17
|
+
get project(): Project;
|
|
18
|
+
get parent(): Region_Project;
|
|
19
|
+
RUN: () => void;
|
|
20
|
+
ExecuteTask_Cronjob(project: Project, task: Task, taskCount: number): boolean;
|
|
21
|
+
ExecuteTask_Single(project: Project, task: Task, taskCount: number): boolean;
|
|
22
|
+
ExecuteTask_Setup(project: Project, task: Task, taskCount: number): boolean;
|
|
23
|
+
ExecuteTask_AllFinish(project: Project, task: Task): void;
|
|
24
|
+
Init_CronContainer: (taskCount: number) => void;
|
|
25
|
+
get_idle: () => Array<WebsocketPack>;
|
|
26
|
+
check_socket_state: (target: WebsocketPack) => ExecuteState.NONE | ExecuteState.RUNNING;
|
|
27
|
+
sync_local_para: (target: Database) => void;
|
|
28
|
+
sync_para: (target: Database, source: WebsocketPack) => void;
|
|
29
|
+
get_idle_open: () => Array<WebsocketPack>;
|
|
30
|
+
check_all_cron_end: () => boolean;
|
|
31
|
+
check_cron_end: (cron: CronJobState) => boolean;
|
|
32
|
+
check_single_end: () => boolean;
|
|
33
|
+
get_task_multi_count: (t: Task) => number;
|
|
34
|
+
get_task_state_count(t: Task): number;
|
|
35
|
+
get_number(key: string): number;
|
|
36
|
+
get_number_global(key: string, localPara: Database | undefined): number;
|
|
37
|
+
database_update: (localPara: Database, n?: number) => Util_Parser;
|
|
10
38
|
}
|