@nsshunt/stsappframework 3.0.118 → 3.0.120
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.
|
@@ -4,6 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.InstrumentationSubscriber = void 0;
|
|
7
|
+
const debug_1 = __importDefault(require("debug"));
|
|
8
|
+
const debug = (0, debug_1.default)(`proc:${process.pid}`);
|
|
7
9
|
const stssocketio_client_1 = require("@nsshunt/stssocketio-client");
|
|
8
10
|
const kafkamanager_1 = require("./kafka/kafkamanager");
|
|
9
11
|
const influxDBManager_1 = require("./influxdb/influxDBManager");
|
|
@@ -12,12 +14,16 @@ const stsconfig_1 = require("@nsshunt/stsconfig");
|
|
|
12
14
|
const stsutils_1 = require("@nsshunt/stsutils");
|
|
13
15
|
const chalk_1 = __importDefault(require("chalk"));
|
|
14
16
|
const goptions = (0, stsconfig_1.$Options)();
|
|
17
|
+
/**
|
|
18
|
+
* Maintain list of instrumentation subscriptions.
|
|
19
|
+
*/
|
|
15
20
|
class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
16
21
|
#subscriptions = {};
|
|
17
22
|
#influxDBManager;
|
|
18
|
-
#
|
|
23
|
+
#timeout = null;
|
|
19
24
|
#km;
|
|
20
25
|
#logger = null;
|
|
26
|
+
#stop = true;
|
|
21
27
|
constructor(options) {
|
|
22
28
|
super(options);
|
|
23
29
|
if (options.logger) {
|
|
@@ -50,7 +56,7 @@ class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
|
50
56
|
this.#logger(msg);
|
|
51
57
|
}
|
|
52
58
|
else {
|
|
53
|
-
|
|
59
|
+
debug(msg);
|
|
54
60
|
}
|
|
55
61
|
}
|
|
56
62
|
async #UnSubscribeKafka(subscription) {
|
|
@@ -194,10 +200,22 @@ class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
|
194
200
|
this.#Log(chalk_1.default.red(`InstrumentationSubscriber:#ExecuteSubscriptions(): Error: [${error}], [${JSON.stringify(retVal)}]`));
|
|
195
201
|
}
|
|
196
202
|
};
|
|
203
|
+
#SetupTimeout = () => {
|
|
204
|
+
let timeout = 1000; //@@ default
|
|
205
|
+
if (this.options) {
|
|
206
|
+
timeout = this.options.SubscriptionInterval;
|
|
207
|
+
}
|
|
208
|
+
this.#timeout = setTimeout(() => {
|
|
209
|
+
this.#ExecuteSubscriptions();
|
|
210
|
+
if (!this.#stop) {
|
|
211
|
+
this.#SetupTimeout();
|
|
212
|
+
}
|
|
213
|
+
}, timeout);
|
|
214
|
+
};
|
|
197
215
|
Subscribe(subscriptionKey, cb) {
|
|
198
|
-
if (this.#
|
|
199
|
-
|
|
200
|
-
this.#
|
|
216
|
+
if (this.#timeout) {
|
|
217
|
+
clearTimeout(this.#timeout);
|
|
218
|
+
this.#timeout = null;
|
|
201
219
|
}
|
|
202
220
|
if (this.#subscriptions[subscriptionKey.id]) {
|
|
203
221
|
// Subscription already exists - ignoring
|
|
@@ -212,16 +230,10 @@ class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
|
212
230
|
this.#SubscribeKafka(this.#subscriptions[subscriptionKey.id]);
|
|
213
231
|
}
|
|
214
232
|
this.#Log(chalk_1.default.grey(`InstrumentationSubscriber.Subscribe(): subscriptionKey.id: [${subscriptionKey.id}] successfully subscribed.`));
|
|
215
|
-
if (!this.#
|
|
233
|
+
if (!this.#timeout) {
|
|
216
234
|
// Output subscription immediately and then iterate ...
|
|
217
235
|
this.#ExecuteSubscriptions();
|
|
218
|
-
|
|
219
|
-
if (this.options) {
|
|
220
|
-
interval = this.options.SubscriptionInterval;
|
|
221
|
-
}
|
|
222
|
-
this.#interval = setInterval(() => {
|
|
223
|
-
this.#ExecuteSubscriptions();
|
|
224
|
-
}, interval);
|
|
236
|
+
this.#SetupTimeout();
|
|
225
237
|
}
|
|
226
238
|
}
|
|
227
239
|
}
|
|
@@ -235,9 +247,9 @@ class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
|
235
247
|
}
|
|
236
248
|
delete this.#subscriptions[subscriptionKey.id];
|
|
237
249
|
if (Object.keys(this.#subscriptions).length === 0) {
|
|
238
|
-
if (this.#
|
|
239
|
-
|
|
240
|
-
this.#
|
|
250
|
+
if (this.#timeout) {
|
|
251
|
+
clearTimeout(this.#timeout);
|
|
252
|
+
this.#timeout = null;
|
|
241
253
|
}
|
|
242
254
|
}
|
|
243
255
|
}
|
|
@@ -248,9 +260,11 @@ class InstrumentationSubscriber extends stsutils_1.STSOptionsBase {
|
|
|
248
260
|
}
|
|
249
261
|
}
|
|
250
262
|
async Start() {
|
|
263
|
+
this.#stop = false;
|
|
251
264
|
return this.#influxDBManager.Start();
|
|
252
265
|
}
|
|
253
266
|
async Stop() {
|
|
267
|
+
this.#stop = true;
|
|
254
268
|
this.#UnSubscribeAll();
|
|
255
269
|
return this.#influxDBManager.Terminate();
|
|
256
270
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentationsubscriber.js","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"instrumentationsubscriber.js","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
import debugModule from 'debug'
|
|
2
|
+
const debug = debugModule(`proc:${process.pid}`);
|
|
3
|
+
|
|
1
4
|
import { IKafkaConsumer, logFunction } from './commonTypes'
|
|
2
5
|
import { ISubscriptionPayload, ISubscriptionKey, SubscriptionTopic, IKafkaData } from '@nsshunt/stssocketio-client'
|
|
3
6
|
|
|
@@ -32,12 +35,16 @@ export interface IInstrumentationSubscriberOptions {
|
|
|
32
35
|
logger?: logFunction
|
|
33
36
|
}
|
|
34
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Maintain list of instrumentation subscriptions.
|
|
40
|
+
*/
|
|
35
41
|
export class InstrumentationSubscriber extends STSOptionsBase {
|
|
36
42
|
#subscriptions: ISubscriptions = { };
|
|
37
43
|
#influxDBManager: InfluxDBManager;
|
|
38
|
-
#
|
|
44
|
+
#timeout: NodeJS.Timer | null = null;
|
|
39
45
|
#km: KafkaManager;
|
|
40
46
|
#logger: logFunction | null = null;
|
|
47
|
+
#stop: boolean = true;
|
|
41
48
|
|
|
42
49
|
constructor(options: IInstrumentationSubscriberOptions) {
|
|
43
50
|
super(options);
|
|
@@ -74,7 +81,7 @@ export class InstrumentationSubscriber extends STSOptionsBase {
|
|
|
74
81
|
if (this.#logger) {
|
|
75
82
|
this.#logger(msg);
|
|
76
83
|
} else {
|
|
77
|
-
|
|
84
|
+
debug(msg);
|
|
78
85
|
}
|
|
79
86
|
}
|
|
80
87
|
|
|
@@ -219,10 +226,23 @@ export class InstrumentationSubscriber extends STSOptionsBase {
|
|
|
219
226
|
}
|
|
220
227
|
}
|
|
221
228
|
|
|
229
|
+
#SetupTimeout = () => {
|
|
230
|
+
let timeout = 1000; //@@ default
|
|
231
|
+
if (this.options) {
|
|
232
|
+
timeout = this.options.SubscriptionInterval
|
|
233
|
+
}
|
|
234
|
+
this.#timeout = setTimeout(() => {
|
|
235
|
+
this.#ExecuteSubscriptions();
|
|
236
|
+
if (!this.#stop) {
|
|
237
|
+
this.#SetupTimeout();
|
|
238
|
+
}
|
|
239
|
+
}, timeout);
|
|
240
|
+
}
|
|
241
|
+
|
|
222
242
|
Subscribe(subscriptionKey: ISubscriptionKey, cb: (payload: ISubscriptionPayload) => void) {
|
|
223
|
-
if (this.#
|
|
224
|
-
|
|
225
|
-
this.#
|
|
243
|
+
if (this.#timeout) {
|
|
244
|
+
clearTimeout(this.#timeout);
|
|
245
|
+
this.#timeout = null;
|
|
226
246
|
}
|
|
227
247
|
if (this.#subscriptions[subscriptionKey.id]) {
|
|
228
248
|
// Subscription already exists - ignoring
|
|
@@ -237,16 +257,10 @@ export class InstrumentationSubscriber extends STSOptionsBase {
|
|
|
237
257
|
}
|
|
238
258
|
this.#Log(chalk.grey(`InstrumentationSubscriber.Subscribe(): subscriptionKey.id: [${subscriptionKey.id}] successfully subscribed.`));
|
|
239
259
|
|
|
240
|
-
if (!this.#
|
|
260
|
+
if (!this.#timeout) {
|
|
241
261
|
// Output subscription immediately and then iterate ...
|
|
242
262
|
this.#ExecuteSubscriptions();
|
|
243
|
-
|
|
244
|
-
if (this.options) {
|
|
245
|
-
interval = this.options.SubscriptionInterval
|
|
246
|
-
}
|
|
247
|
-
this.#interval = setInterval(() => {
|
|
248
|
-
this.#ExecuteSubscriptions();
|
|
249
|
-
}, interval);
|
|
263
|
+
this.#SetupTimeout();
|
|
250
264
|
}
|
|
251
265
|
}
|
|
252
266
|
}
|
|
@@ -261,9 +275,9 @@ export class InstrumentationSubscriber extends STSOptionsBase {
|
|
|
261
275
|
delete this.#subscriptions[subscriptionKey.id];
|
|
262
276
|
|
|
263
277
|
if (Object.keys(this.#subscriptions).length === 0) {
|
|
264
|
-
if (this.#
|
|
265
|
-
|
|
266
|
-
this.#
|
|
278
|
+
if (this.#timeout) {
|
|
279
|
+
clearTimeout(this.#timeout);
|
|
280
|
+
this.#timeout = null;
|
|
267
281
|
}
|
|
268
282
|
}
|
|
269
283
|
}
|
|
@@ -276,10 +290,12 @@ export class InstrumentationSubscriber extends STSOptionsBase {
|
|
|
276
290
|
}
|
|
277
291
|
|
|
278
292
|
async Start() {
|
|
293
|
+
this.#stop = false;
|
|
279
294
|
return this.#influxDBManager.Start();
|
|
280
295
|
}
|
|
281
296
|
|
|
282
297
|
async Stop() {
|
|
298
|
+
this.#stop = true;
|
|
283
299
|
this.#UnSubscribeAll();
|
|
284
300
|
return this.#influxDBManager.Terminate();
|
|
285
301
|
}
|
|
@@ -5,6 +5,9 @@ export interface IInstrumentationSubscriberOptions {
|
|
|
5
5
|
SubscriptionInterval: number;
|
|
6
6
|
logger?: logFunction;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Maintain list of instrumentation subscriptions.
|
|
10
|
+
*/
|
|
8
11
|
export declare class InstrumentationSubscriber extends STSOptionsBase {
|
|
9
12
|
#private;
|
|
10
13
|
constructor(options: IInstrumentationSubscriberOptions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentationsubscriber.d.ts","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instrumentationsubscriber.d.ts","sourceRoot":"","sources":["../src/instrumentationsubscriber.ts"],"names":[],"mappings":"AAGA,OAAO,EAAkB,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3D,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAiC,MAAM,6BAA6B,CAAA;AAOnH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAqBnD,MAAM,WAAW,iCAAiC;IAC9C,oBAAoB,EAAE,MAAM,CAAA;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAA;CACvB;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,cAAc;;gBAQ7C,OAAO,EAAE,iCAAiC;IAiMtD,SAAS,CAAC,eAAe,EAAE,gBAAgB,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,IAAI;IA0BxF,WAAW,CAAC,eAAe,EAAE,gBAAgB;IAwBvC,KAAK;IAKL,IAAI;CAKb"}
|