ee-core 2.0.0-beta.3 → 2.0.0-beta.6

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.
Files changed (68) hide show
  1. package/addon/index.js +30 -0
  2. package/config/config.default.js +2 -3
  3. package/config/index.js +54 -0
  4. package/const/channel.js +9 -0
  5. package/{module/const → const}/index.js +1 -5
  6. package/controller/index.js +34 -0
  7. package/core/index.js +0 -2
  8. package/core/lib/ee.js +0 -2
  9. package/core/lib/loader/ee_loader.js +2 -2
  10. package/core/lib/loader/file_loader.js +1 -0
  11. package/{lib → ee}/application.js +2 -2
  12. package/{lib → ee}/baseApp.js +5 -4
  13. package/{lib → ee}/eeApp.js +21 -47
  14. package/ee/index.js +30 -0
  15. package/electron/index.js +32 -0
  16. package/electron/window.js +45 -0
  17. package/exception/index.js +85 -0
  18. package/{module/httpclient → httpclient}/index.js +2 -2
  19. package/index.js +8 -10
  20. package/jobs/baseJobClass.js +16 -0
  21. package/jobs/child/app.js +63 -0
  22. package/jobs/child/forkProcess.js +61 -0
  23. package/jobs/child/index.js +78 -0
  24. package/jobs/childPool/app.js +68 -0
  25. package/{module/jobs/child → jobs/childPool}/forkProcess.js +15 -16
  26. package/{module/jobs/child → jobs/childPool}/index.js +27 -17
  27. package/{module/jobs/child → jobs/childPool}/pool.js +3 -3
  28. package/{module/jobs → jobs}/renderer/loadView.js +1 -1
  29. package/{module/jobs → jobs}/unification.js +1 -1
  30. package/{module/loader → loader}/index.js +36 -14
  31. package/{module/log → log}/logger.js +1 -1
  32. package/message/childMessage.js +31 -0
  33. package/{module/message → message}/index.js +2 -11
  34. package/{module/utils → oldUtils}/index.js +25 -5
  35. package/package.json +2 -1
  36. package/{module/utils/ps.js → ps/index.js} +30 -3
  37. package/service/index.js +34 -0
  38. package/{module/socket → socket}/httpServer.js +12 -18
  39. package/socket/index.js +82 -0
  40. package/{module/socket → socket}/io.js +6 -2
  41. package/{module/socket → socket}/ipcServer.js +2 -4
  42. package/socket/socketServer.js +66 -0
  43. package/{module/storage → storage}/jsondbStorage.js +38 -1
  44. package/{module/storage → storage}/sqliteStorage.js +1 -1
  45. package/tools/encrypt.js +1 -1
  46. package/{module/utils → utils}/helper.js +0 -1
  47. package/utils/index.js +7 -27
  48. package/module/exception/index.js +0 -16
  49. package/module/jobs/child/app.js +0 -43
  50. package/module/message/childMessage.js +0 -63
  51. package/module/message/ipcMain.js +0 -160
  52. package/module/message/ipcRender.js +0 -0
  53. package/module/message/manager.js +0 -0
  54. package/module/message/messenger.js +0 -0
  55. package/module/socket/socketClient.js +0 -49
  56. package/module/socket/socketServer.js +0 -76
  57. package/module/socket/start.js +0 -22
  58. /package/{lib → ee}/appLoader.js +0 -0
  59. /package/{module/jobs → jobs}/index.js +0 -0
  60. /package/{module/jobs → jobs}/renderer/index.js +0 -0
  61. /package/{module/log → log}/index.js +0 -0
  62. /package/{module/storage → storage}/index.js +0 -0
  63. /package/{module/storage → storage}/jsondb/adapters/Base.js +0 -0
  64. /package/{module/storage → storage}/jsondb/adapters/FileSync.js +0 -0
  65. /package/{module/storage → storage}/jsondb/main.js +0 -0
  66. /package/{module/utils → utils}/copyto.js +0 -0
  67. /package/{module/utils → utils}/json.js +0 -0
  68. /package/{module/utils → utils}/wrap.js +0 -0
@@ -1,14 +1,27 @@
1
+ /**
2
+ * 该模块不在增加新功能,请使用 /module/utils/index 模块
3
+ */
4
+
1
5
  const path = require('path');
6
+ const UtilsJson = require('../utils/json');
7
+ const UtilsPs = require('../ps');
8
+ const UtilsHelper = require('../utils/helper');
9
+ const Copy = require('../utils/copyto');
2
10
  const Storage = require('../storage');
3
11
  const Constants = require('../const');
4
- const Ps = require('./ps');
5
- const UtilsJson = require('./json');
12
+
13
+ /**
14
+ * other module
15
+ */
16
+ Copy(UtilsPs)
17
+ .and(UtilsHelper)
18
+ .to(exports);
6
19
 
7
20
  /**
8
21
  * 获取项目根目录package.json
9
22
  */
10
23
  exports.getPackage = function() {
11
- const json = UtilsJson.readSync(path.join(Ps.getHomeDir(), 'package.json'));
24
+ const json = UtilsJson.readSync(path.join(this.getHomeDir(), 'package.json'));
12
25
 
13
26
  return json;
14
27
  };
@@ -76,11 +89,18 @@ exports.getSocketServerConfig = function() {
76
89
  return cfg;
77
90
  }
78
91
 
92
+ /**
93
+ * 获取 socketio port
94
+ */
95
+ exports.getSocketPort = function() {
96
+ const cdb = this.getCoreDB();
97
+ const port = cdb.getItem('config').socketServer.port;
98
+ return parseInt(port);
99
+ }
100
+
79
101
  /**
80
102
  * 获取 socket channel
81
103
  */
82
104
  exports.getSocketChannel = function() {
83
105
  return Constants.socketIo.channel;
84
106
  }
85
-
86
-
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ee-core",
3
- "version": "2.0.0-beta.3",
3
+ "version": "2.0.0-beta.6",
4
4
  "description": "ee core",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -36,6 +36,7 @@
36
36
  "lodash": "^4.17.21",
37
37
  "mkdirp": "^2.1.3",
38
38
  "path-to-regexp": "^6.2.0",
39
+ "serialize-javascript": "^6.0.1",
39
40
  "socket.io": "^4.4.1",
40
41
  "socket.io-client": "^4.4.1",
41
42
  "urllib": "^2.38.0"
@@ -20,6 +20,13 @@ exports.env = function() {
20
20
  */
21
21
  exports.getEnv = this.env
22
22
 
23
+ /**
24
+ * 是否生产环境
25
+ */
26
+ exports.isProd = function() {
27
+ return (process.env.EE_SERVER_ENV === 'prod');
28
+ }
29
+
23
30
  /**
24
31
  * 是否为开发环境
25
32
  */
@@ -182,21 +189,21 @@ exports.getUserHomeDir = function () {
182
189
  * 获取主进程端口
183
190
  */
184
191
  exports.getMainPort = function () {
185
- return process.env.EE_MAIN_PORT;
192
+ return parseInt(process.env.EE_MAIN_PORT) || 0;
186
193
  }
187
194
 
188
195
  /**
189
196
  * 获取内置socket端口
190
197
  */
191
198
  exports.getSocketPort = function () {
192
- return process.env.EE_SOCKET_PORT;
199
+ return parseInt(process.env.EE_SOCKET_PORT) || 0;
193
200
  }
194
201
 
195
202
  /**
196
203
  * 获取内置http端口
197
204
  */
198
205
  exports.getHttpPort = function () {
199
- return process.env.EE_HTTP_PORT;
206
+ return parseInt(process.env.EE_HTTP_PORT) || 0;
200
207
  }
201
208
 
202
209
  /**
@@ -218,4 +225,24 @@ exports.isEncrypted = function () {
218
225
  */
219
226
  exports.isHotReload = function () {
220
227
  return process.env.HOT_RELOAD === 'true';
228
+ }
229
+
230
+ /**
231
+ * 进程退出
232
+ */
233
+ exports.exit = function(code = 0) {
234
+ return process.exit(code);
235
+ }
236
+
237
+ /**
238
+ * 格式化message
239
+ */
240
+ exports.makeMessage = function(msg = {}) {
241
+ let message = Object.assign({
242
+ channel: '',
243
+ event: '',
244
+ data: {}
245
+ }, msg);
246
+
247
+ return message;
221
248
  }
@@ -0,0 +1,34 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * BaseContextClass is a base class that can be extended,
5
+ * it's instantiated in context level,
6
+ * {@link Helper}, {@link Service} is extending it.
7
+ */
8
+ class BaseContextClass {
9
+
10
+ /**
11
+ * @class
12
+ * @param {Context} ctx - context instance
13
+ * @since 1.0.0
14
+ */
15
+ constructor(ctx) {
16
+ /**
17
+ * @member {Application} BaseContextClass#app
18
+ * @since 1.0.0
19
+ */
20
+ this.app = ctx;
21
+ /**
22
+ * @member {Config} BaseContextClass#config
23
+ * @since 1.0.0
24
+ */
25
+ this.config = ctx.config;
26
+ /**
27
+ * @member {Service} BaseContextClass#service
28
+ * @since 1.0.0
29
+ */
30
+ this.service = ctx.service;
31
+ }
32
+ }
33
+
34
+ module.exports = BaseContextClass;
@@ -10,6 +10,7 @@ const fs = require('fs');
10
10
  const path = require('path');
11
11
  const _ = require('lodash');
12
12
  const Log = require('../log');
13
+ const Ps = require('../ps');
13
14
 
14
15
  /**
15
16
  * http server
@@ -19,12 +20,14 @@ class HttpServer {
19
20
  this.app = app;
20
21
  this.options = this.app.config.httpServer;
21
22
 
22
- if (!this.options.enable) {
23
+ if (this.options.enable == false) {
23
24
  return;
24
25
  }
25
26
 
26
- let port = process.env.EE_HTTP_PORT ? parseInt(process.env.EE_HTTP_PORT) : parseInt(this.getHttpPort());
27
- assert(typeof port === 'number', 'http port required, and must be a number');
27
+ let port = Ps.getHttpPort();
28
+ if (!port) {
29
+ throw new Error('[ee-core] [socket/HttpServer] http port required, and must be a number !');
30
+ }
28
31
 
29
32
  this.create();
30
33
  }
@@ -33,15 +36,15 @@ class HttpServer {
33
36
  * 创建服务
34
37
  */
35
38
  create () {
36
- const self = this;
39
+ const app = this.app;
37
40
  const httpServer = this.options;
38
41
  const isHttps = httpServer?.https?.enable ?? false;
39
42
  let sslOptions = {};
40
43
 
41
44
  if (isHttps === true) {
42
45
  httpServer.protocol = 'https://';
43
- const keyFile = path.join(this.app.config.homeDir, httpServer.https.key);
44
- const certFile = path.join(this.app.config.homeDir, httpServer.https.cert);
46
+ const keyFile = path.join(app.config.homeDir, httpServer.https.key);
47
+ const certFile = path.join(app.config.homeDir, httpServer.https.cert);
45
48
  assert(fs.existsSync(keyFile), 'ssl key file is required');
46
49
  assert(fs.existsSync(certFile), 'ssl cert file is required');
47
50
 
@@ -56,12 +59,12 @@ class HttpServer {
56
59
  .use(cors(corsOptions))
57
60
  .use(koaBody(httpServer.body))
58
61
  .use(async (ctx, next) => {
59
- ctx.eeApp = self.app;
62
+ ctx.eeApp = app;
60
63
  await next();
61
64
  })
62
65
  .use(this.dispatch);
63
66
 
64
- let msg = '[ee-core] [module/socket/httpServer] server is: ' + url;
67
+ let msg = '[ee-core] [socket/http] server is: ' + url;
65
68
  if (isHttps) {
66
69
  https.createServer(sslOptions, koaApp.callback()).listen(httpServer.port, (err) => {
67
70
  msg = err ? err : msg;
@@ -125,20 +128,11 @@ class HttpServer {
125
128
  const result = await fn.call(ctx.eeApp, args);
126
129
  ctx.response.body = result;
127
130
  } catch (err) {
128
- ctx.eeApp.console.error('[ee-core:http:server] throw error:', err);
131
+ Log.coreLogger.error('[ee-core/httpServer] throw error:', err);
129
132
  }
130
133
 
131
134
  await next();
132
135
  }
133
-
134
- /**
135
- * 获取http端口
136
- */
137
- getHttpPort () {
138
- const cdb = this.getCoreDB();
139
- const port = cdb.getItem('config').httpServer.port;
140
- return parseInt(port);
141
- }
142
136
  }
143
137
 
144
138
  module.exports = HttpServer;
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ const IoServer = require('socket.io');
4
+ const IoClient = require('socket.io-client');
5
+ const Koa = require('koa');
6
+ const EESocketServer = Symbol('Ee#SocketServer');
7
+ const EEIpcServer = Symbol('Ee#IpcServer');
8
+ const EEHttpServer = Symbol('Ee#HttpServer');
9
+
10
+ const EeSocket = {
11
+
12
+ /**
13
+ * 提供基础库 - 避免用户重复安装
14
+ */
15
+ Koa,
16
+ IoServer,
17
+ IoClient,
18
+
19
+ /**
20
+ * 启动所有服务
21
+ */
22
+ startAll(app) {
23
+ this._createSocketServer(app);
24
+ this._createHttpServer(app);
25
+ this._createIpcServer(app);
26
+ },
27
+
28
+ /**
29
+ * 创建SocketServer
30
+ */
31
+ _createSocketServer(app) {
32
+ const SocketServer = require('./socketServer');
33
+ this[EESocketServer] = new SocketServer(app);
34
+
35
+ return this[EESocketServer];
36
+ },
37
+
38
+ /**
39
+ * 获取 Socket Server
40
+ */
41
+ getSocketServer() {
42
+ return this[EESocketServer] || null;
43
+ },
44
+
45
+ /**
46
+ * 创建 Http Server
47
+ */
48
+ _createHttpServer(app) {
49
+ const HttpServer = require('./httpServer');
50
+ this[EEHttpServer] = new HttpServer(app);
51
+
52
+ return this[EEHttpServer];
53
+ },
54
+
55
+ /**
56
+ * 获取 Http Server
57
+ */
58
+ getHttpServer() {
59
+ return this[EEHttpServer] || null;
60
+ },
61
+
62
+ /**
63
+ * 创建 IPC Server
64
+ */
65
+ _createIpcServer(app) {
66
+ const IpcServer = require('./ipcServer');
67
+ this[EEIpcServer] = new IpcServer(app);
68
+
69
+ return this[EEIpcServer];
70
+ },
71
+
72
+ /**
73
+ * 获取 IPC Server
74
+ */
75
+ getIpcServer() {
76
+ return this[EEIpcServer] || null;
77
+ },
78
+
79
+ }
80
+
81
+
82
+ module.exports = EeSocket;
@@ -1,9 +1,13 @@
1
1
  'use strict';
2
2
 
3
+ /**
4
+ * 该文件将废弃
5
+ */
6
+
3
7
  const IoServer = require('socket.io');
4
8
  const IoClient = require('socket.io-client');
5
9
  //const socketServer = require('./socketServer');
6
- const socketClient = require('./socketClient');
10
+ // const socketClient = require('./socketClient');
7
11
  const Koa = require('koa');
8
12
 
9
13
  const EeSocket = {
@@ -11,7 +15,7 @@ const EeSocket = {
11
15
  //return socketServer.getInstance();
12
16
  },
13
17
  getClient: () => {
14
- return socketClient.getInstance();
18
+ //return socketClient.getInstance();
15
19
  }
16
20
  }
17
21
 
@@ -4,7 +4,7 @@ const { ipcMain } = require('electron');
4
4
  const path = require('path');
5
5
  const fs = require('fs');
6
6
  const globby = require('globby');
7
- const Utils = require('../../core/lib/utils');
7
+ const Utils = require('../core/lib/utils');
8
8
  const Wrap = require('../utils/wrap');
9
9
  const Log = require('../log');
10
10
 
@@ -15,8 +15,6 @@ class IpcServer {
15
15
  }
16
16
 
17
17
  register () {
18
- console.log('[ee-core] [module/socket/IpcServer] register channels');
19
-
20
18
  const self = this;
21
19
  // 遍历方法
22
20
  const files = Utils.filePatterns();
@@ -75,7 +73,7 @@ class IpcServer {
75
73
 
76
74
  return fn;
77
75
  } catch (err) {
78
- Log.coreLogger.error('[ee-core] [module/socket/IpcServer] throw error:', err);
76
+ Log.coreLogger.error('[ee-core] [socket/IpcServer] throw error:', err);
79
77
  }
80
78
  return null;
81
79
  }
@@ -0,0 +1,66 @@
1
+ 'use strict';
2
+
3
+ const { Server } = require('socket.io');
4
+ const is = require('is-type-of');
5
+ const Log = require('../log');
6
+ const Conf = require('../config');
7
+ const Ps = require('../ps');
8
+ const Channel = require('../const/channel');
9
+
10
+ /**
11
+ * socket server
12
+ */
13
+ class SocketServer {
14
+ constructor (app) {
15
+ this.app = app;
16
+ const options = Conf.getValue('socketServer');
17
+
18
+ if (options.enable == false) {
19
+ return;
20
+ }
21
+
22
+ let port = Ps.getSocketPort();
23
+ if (!port) {
24
+ throw new Error('[ee-core] [socket/socketServer] socekt port required, and must be a number !');
25
+ }
26
+
27
+ Log.coreLogger.info('[ee-core] [socket/socketServer] port is:', port);
28
+
29
+ this.io = new Server(port, options);
30
+ this.connec();
31
+ }
32
+
33
+ connec () {
34
+ const app = this.app;
35
+ this.io.on('connection', (socket) => {
36
+ const channel = Channel.socketIo.partySoftware;
37
+ socket.on(channel, async (message, callback) => {
38
+ Log.coreLogger.info('[ee-core] [socket/socketServer] socket id:' + socket.id + ' message cmd: ' + message.cmd);
39
+
40
+ try {
41
+ // 找函数
42
+ const cmd = message.cmd;
43
+ const args = message.params;
44
+ let fn = null;
45
+ if (is.string(cmd)) {
46
+ const actions = cmd.split('.');
47
+ let obj = app;
48
+ actions.forEach(key => {
49
+ obj = obj[key];
50
+ if (!obj) throw new Error(`class or function '${key}' not exists`);
51
+ });
52
+ fn = obj;
53
+ }
54
+ if (!fn) throw new Error('function not exists');
55
+
56
+ const result = await fn.call(app, args);
57
+ callback(result);
58
+ } catch (err) {
59
+ Log.coreLogger.error('[ee-core] [socket/socketServer] throw error:', err);
60
+ }
61
+ });
62
+ });
63
+ }
64
+ }
65
+
66
+ module.exports = SocketServer;
@@ -6,7 +6,7 @@ const FileSync = require('./jsondb/adapters/FileSync');
6
6
  const _ = require('lodash');
7
7
  const Constants = require('../const');
8
8
  const Helper = require('../utils/helper');
9
- const Ps = require('../utils/ps');
9
+ const Ps = require('../ps');
10
10
 
11
11
  class JsondbStorage {
12
12
  constructor (name, opt = {}) {
@@ -90,6 +90,43 @@ class JsondbStorage {
90
90
  .get(keyId)
91
91
  .value();
92
92
 
93
+ return data;
94
+ }
95
+
96
+ /**
97
+ * 设置config对象key属性的值
98
+ */
99
+ setConfigItem (key, value) {
100
+ assert(_.isString(key), `key must be a string`);
101
+ assert(key.length != 0, `key cannot be empty`);
102
+ assert(!this.storageKey.hasOwnProperty(key), `${key} is not allowed`);
103
+
104
+ let cacheKey = this.storageKey.cacheConfig;
105
+ if (!this.db.has(cacheKey).value()) {
106
+ this.db.set(cacheKey, {}).write();
107
+ }
108
+
109
+ let keyId = cacheKey + "." + key;
110
+ this.db
111
+ .set(keyId, value)
112
+ .write();
113
+
114
+ return true;
115
+ }
116
+
117
+ /**
118
+ * 获取config对象key属性的值
119
+ */
120
+ getConfigItem (key) {
121
+ assert(_.isString(key), `key must be a string`);
122
+ assert(key.length != 0, `key cannot be empty`);
123
+
124
+ let cacheKey = this.storageKey.cacheConfig;
125
+ let keyId = cacheKey + "." + key;
126
+ const data = this.db
127
+ .get(keyId)
128
+ .value();
129
+
93
130
  return data;
94
131
  }
95
132
  }
@@ -5,7 +5,7 @@ const fs = require('fs');
5
5
  const path = require('path');
6
6
  const Database = require('better-sqlite3');
7
7
  const Helper = require('../utils/helper');
8
- const Ps = require('../utils/ps');
8
+ const Ps = require('../ps');
9
9
 
10
10
  class SqliteStorage {
11
11
  constructor (name, opt = {}) {
package/tools/encrypt.js CHANGED
@@ -7,7 +7,7 @@ const is = require('is-type-of');
7
7
  const bytenode = require('bytenode');
8
8
  const crypto = require('crypto');
9
9
  const JavaScriptObfuscator = require('javascript-obfuscator');
10
- const UtilsJson = require('../module/utils/json');
10
+ const UtilsJson = require('../utils/json');
11
11
 
12
12
  class Encrypt {
13
13
  constructor() {
@@ -1,5 +1,4 @@
1
1
  const fs = require('fs');
2
- const path = require('path');
3
2
  const mkdirp = require('mkdirp');
4
3
  const convert = require('koa-convert');
5
4
  const is = require('is-type-of');
package/utils/index.js CHANGED
@@ -1,27 +1,14 @@
1
- /**
2
- * 该模块不在增加新功能,请使用 /module/utils/index 模块
3
- */
4
-
5
1
  const path = require('path');
6
- const UtilsJson = require('../module/utils/json');
7
- const UtilsPs = require('../module/utils/ps');
8
- const UtilsHelper = require('../module/utils/helper');
9
- const Copy = require('../module/utils/copyto');
10
- const Storage = require('../module/storage');
11
- const Constants = require('../module/const');
12
-
13
- /**
14
- * other module
15
- */
16
- Copy(UtilsPs)
17
- .and(UtilsHelper)
18
- .to(exports);
2
+ const Storage = require('../storage');
3
+ const Constants = require('../const');
4
+ const Ps = require('../ps');
5
+ const UtilsJson = require('./json');
19
6
 
20
7
  /**
21
8
  * 获取项目根目录package.json
22
9
  */
23
10
  exports.getPackage = function() {
24
- const json = UtilsJson.readSync(path.join(this.getHomeDir(), 'package.json'));
11
+ const json = UtilsJson.readSync(path.join(Ps.getHomeDir(), 'package.json'));
25
12
 
26
13
  return json;
27
14
  };
@@ -89,18 +76,11 @@ exports.getSocketServerConfig = function() {
89
76
  return cfg;
90
77
  }
91
78
 
92
- /**
93
- * 获取 socketio port
94
- */
95
- exports.getSocketPort = function() {
96
- const cdb = this.getCoreDB();
97
- const port = cdb.getItem('config').socketServer.port;
98
- return parseInt(port);
99
- }
100
-
101
79
  /**
102
80
  * 获取 socket channel
103
81
  */
104
82
  exports.getSocketChannel = function() {
105
83
  return Constants.socketIo.channel;
106
84
  }
85
+
86
+
@@ -1,16 +0,0 @@
1
- const Log = require('../log');
2
-
3
- /**
4
- * 捕获异常
5
- */
6
- exports.start = function() {
7
- process.on('uncaughtException', this.uncaughtExceptionHandler);
8
- }
9
-
10
- exports.uncaughtExceptionHandler = function(err) {
11
- if (!(err instanceof Error)) {
12
- err = new Error(String(err));
13
- }
14
-
15
- Log.coreLogger.error(err);
16
- }
@@ -1,43 +0,0 @@
1
-
2
- const Exception = require('ee-core/module/exception');
3
- Exception.start();
4
- const Loader = require('ee-core/module/loader');
5
- const Log = require('ee-core/module/log');
6
-
7
- class ChildApp {
8
- constructor() {
9
- this._initEvents();
10
- }
11
-
12
- /**
13
- * 初始化事件监听
14
- */
15
- _initEvents() {
16
- Log.info('[ee-core] [child-process] init Events');
17
-
18
- process.on('disconnect', () => {
19
- Log.coreLogger.info(`[ee-core] [module/message/childMessage] child process disconnected:${process.pid} !`);
20
- });
21
- process.on('exit', () => {
22
- Log.coreLogger.info(`[ee-core] [module/message/childMessage] child process exited:${process.pid} !`);
23
- });
24
- process.on('message', this._handleMessage.bind(this));
25
- }
26
-
27
- /**
28
- * 监听消息
29
- */
30
- _handleMessage(message) {
31
- Log.coreLogger.info(`[ee-core] [module/message/childMessage] Received a message ${message} from the mainProcess`);
32
-
33
- this.run(message);
34
- }
35
-
36
- run(msg = {}) {
37
- Log.coreLogger.info('[ee-core] [child-process] run');
38
-
39
- Loader.loadJobFile(msg.jobPath, msg.params);
40
- }
41
- }
42
-
43
- new ChildApp();