@steedos/service-package-loader 2.1.89 → 2.2.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/index.js +30 -0
- package/package.json +4 -4
package/index.js
CHANGED
|
@@ -7,6 +7,7 @@ const sendPackageFlowToDb = require('./lib/loadPackageFlow').sendPackageFlowToDb
|
|
|
7
7
|
const path = require('path');
|
|
8
8
|
const Future = require('fibers/future');
|
|
9
9
|
const _ = require('lodash');
|
|
10
|
+
const globby = require("globby");
|
|
10
11
|
/**
|
|
11
12
|
* @typedef {import('moleculer').Context} Context Moleculer's Context
|
|
12
13
|
*/
|
|
@@ -93,6 +94,24 @@ module.exports = {
|
|
|
93
94
|
await this.broker.call(`@steedos/service-packages.setPackageRoutersInfo`, {packageName: name, data: routersInfo})
|
|
94
95
|
return;
|
|
95
96
|
}).promise();
|
|
97
|
+
},
|
|
98
|
+
loadPackageMetadataServices: async function (packagePath) {
|
|
99
|
+
const filePatten = [
|
|
100
|
+
path.join(packagePath, 'main', 'default', 'services', `*.service.js`),
|
|
101
|
+
"!" + path.join(packagePath, "**", "node_modules"),
|
|
102
|
+
];
|
|
103
|
+
const matchedPaths = globby.sync(filePatten);
|
|
104
|
+
for await (const serviceFilePath of matchedPaths) {
|
|
105
|
+
try {
|
|
106
|
+
const service = this.broker.loadService(serviceFilePath);
|
|
107
|
+
this.packageServices.push(service);
|
|
108
|
+
if (!this.broker.started) {
|
|
109
|
+
this.broker._restartService(service)
|
|
110
|
+
}
|
|
111
|
+
} catch (error) {
|
|
112
|
+
this.logger.error(error)
|
|
113
|
+
}
|
|
114
|
+
}
|
|
96
115
|
}
|
|
97
116
|
},
|
|
98
117
|
|
|
@@ -100,6 +119,7 @@ module.exports = {
|
|
|
100
119
|
* Service created lifecycle event handler
|
|
101
120
|
*/
|
|
102
121
|
created() {
|
|
122
|
+
this.packageServices = []; //此属性不能放到settings下,否则会导致mo clone settings 时 内存溢出。
|
|
103
123
|
this.logger.debug('service package loader created!!!');
|
|
104
124
|
},
|
|
105
125
|
|
|
@@ -135,6 +155,9 @@ module.exports = {
|
|
|
135
155
|
|
|
136
156
|
}
|
|
137
157
|
}
|
|
158
|
+
|
|
159
|
+
await this.loadPackageMetadataServices(_path);
|
|
160
|
+
|
|
138
161
|
console.timeEnd(`service ${this.name} started`)
|
|
139
162
|
// console.log(`service ${this.name} started`);
|
|
140
163
|
},
|
|
@@ -143,6 +166,13 @@ module.exports = {
|
|
|
143
166
|
* Service stopped lifecycle event handler
|
|
144
167
|
*/
|
|
145
168
|
async stopped() {
|
|
169
|
+
for await (const packageService of this.packageServices) {
|
|
170
|
+
try {
|
|
171
|
+
await this.broker.destroyService(packageService);
|
|
172
|
+
} catch (error) {
|
|
173
|
+
this.logger.errorr(error);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
146
176
|
this.broker.call(`@steedos/service-packages.offline`, {serviceInfo: {name: this.name, nodeID: this.broker.nodeID, instanceID: this.broker.instanceID}})
|
|
147
177
|
await this.broker.call(`metadata.refreshServiceMetadatas`, { offlinePackageServices: [`${this.broker.nodeID}.${this.name}`] });
|
|
148
178
|
console.log(`service ${this.name} stopped`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@steedos/service-package-loader",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "MIT",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@steedos/core": "2.1
|
|
15
|
-
"@steedos/objectql": "2.1
|
|
14
|
+
"@steedos/core": "2.2.1",
|
|
15
|
+
"@steedos/objectql": "2.2.1",
|
|
16
16
|
"clone": "^2.1.2",
|
|
17
17
|
"globby": "^11.0.2",
|
|
18
18
|
"moleculer": "^0.14.12",
|
|
@@ -32,5 +32,5 @@
|
|
|
32
32
|
"publishConfig": {
|
|
33
33
|
"access": "public"
|
|
34
34
|
},
|
|
35
|
-
"gitHead": "
|
|
35
|
+
"gitHead": "0f747034edce2560dd1f39e2259c8e4d20528be2"
|
|
36
36
|
}
|