@nsshunt/stsappframework 3.1.210 → 3.1.212

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.
@@ -1 +1 @@
1
- {"version":3,"file":"workerprocessbase.js","sourceRoot":"","sources":["../src/workerprocessbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workerprocessbase.js","sourceRoot":"","sources":["../src/workerprocessbase.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nsshunt/stsappframework",
3
- "version": "3.1.210",
3
+ "version": "3.1.212",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "./types/index.d.ts",
@@ -10,6 +10,8 @@ import { Consumer, KafkaMessage } from 'kafkajs'
10
10
  //@@import { RedisMessageHandler } from '@nsshunt/stsmessaging'
11
11
  import { TinyEmitter } from "tiny-emitter";
12
12
 
13
+ import { Worker, Address } from 'node:cluster'
14
+
13
15
  export interface IServiceProcessContext extends IContextBase {
14
16
  serviceId?: string // Service name and the service version
15
17
 
@@ -80,6 +82,26 @@ export type IPCMessages = Record<string, IPCMessage>
80
82
 
81
83
  //------------------------------------
82
84
 
85
+ export interface IProcessBaseEvents {
86
+ 'processSigint': null
87
+ 'processSigterm': null
88
+ 'processExit': { code: number }
89
+
90
+ 'ProcessTerminate': null
91
+
92
+ 'clusterListening': { worker: Worker, address: Address };
93
+ 'clusterOnline': { worker: Worker };
94
+ 'clusterExit': { worker: Worker, code: number, signal: string };
95
+ 'allListening': null;
96
+
97
+ 'workerMessage': { id: number, payload: any }
98
+ 'workerError': { error: Error }
99
+ 'workerAdded': { id: number }
100
+ 'workerExit': { code: number, signal: string }
101
+
102
+ 'prometheusScrapesListening': { url: string, endpoint: string, prometheusClusterPort: string }
103
+ }
104
+
83
105
  export interface IProcessBase extends TinyEmitter {
84
106
  SetupInstrumentation(): void
85
107
  GetAdditionalInstruments(): InstrumentDefinitions
@@ -102,10 +124,13 @@ export interface IProcessBase extends TinyEmitter {
102
124
  get accessLayer(): IDBAccessLayer | null
103
125
  get shuttingDown(): boolean
104
126
  //@@get redisMessageHandler(): RedisMessageHandler
127
+
128
+ emit<K extends keyof IProcessBaseEvents>(event: K, arg: IProcessBaseEvents[K]): this
129
+ on<K extends keyof IProcessBaseEvents>(event: K, callback: (arg: IProcessBaseEvents[K]) => void): this
130
+ off<K extends keyof IProcessBaseEvents>(event: K, callback: (arg: IProcessBaseEvents[K]) => void): this
105
131
  }
106
132
 
107
133
  export interface IMasterProcessBase extends IProcessBase {
108
-
109
134
  WorkerMessageEvent(messageId: number, msg: any): any
110
135
  SetupServer: () => Promise<void>
111
136
  SetupServerEx: () => Promise<void>
@@ -122,32 +147,27 @@ export interface IMasterProcessBase extends IProcessBase {
122
147
  ProcessIPCCommand(iPCMessagePayload: IPCMessagePayload): Promise<IPCMessagePayload>
123
148
  }
124
149
 
125
- export interface ISingleProcessBase extends IProcessBase {
126
-
150
+ export interface IServerProcessBase extends IProcessBase {
127
151
  get httpServer(): any
128
- CollectAdditionalTelemetry(): void
129
- ProcessStarted(): void
130
152
  get io(): any
131
- get expressServer(): any // STSExpressServer - need to put interface in common types - circular reference
153
+ get expressServer(): STSExpressServer | null
154
+ set expressServer(server: STSExpressServer | null)
155
+ Terminate: (clusterPerformExit: boolean, signal?: any) => Promise<void>
156
+ SetupSTSServer: () => Promise<void>
157
+ CollectAdditionalTelemetry(): void
132
158
  SetupServer(): Promise<boolean>
133
- SetupServerEx: () => Promise<void>
159
+ SetupServerEx: () => Promise<boolean>
160
+ ProcessStarted(): void
161
+ }
162
+
163
+ export interface ISingleProcessBase extends IServerProcessBase {
134
164
  TerminateApplication(): Promise<void>
135
165
  }
136
166
 
137
- export interface IWorkerProcessBase extends IProcessBase {
138
- get httpServer(): any
139
- WorkerStarted(): void
140
-
167
+ export interface IWorkerProcessBase extends IServerProcessBase {
141
168
  ReceivedMessageFromMaster(msg: any): void
142
- CollectAdditionalTelemetry(): void
143
- get io(): any
144
-
145
169
  AddWorker: (options: any) => Promise<string>
146
-
147
170
  DeleteWorker: (workerId: string, options: any) => Promise<JSONObject>
148
- get expressServer(): any
149
- SetupServer: () => Promise<void>
150
- SetupServerEx: () => Promise<void>
151
171
  GetMasterProcessOptions: () => Promise<JSONObject>
152
172
  }
153
173
 
@@ -251,14 +271,6 @@ export interface IInfluxDBManagerOptions {
251
271
  logger: ISTSLogger
252
272
  }
253
273
 
254
- /*
255
- export interface InstrumentPayload {
256
- //nid: string
257
- context: ServiceProcessContext
258
- instruments: Record<string, InstrumentBase>
259
- }
260
- */
261
-
262
274
  export type ConsumeMessageCB = (topic: string, partition: number, message: KafkaMessage, heartbeat: () => Promise<void>, pause: () => () => void) => void;
263
275
  export type ConsumeMessageErrorCB = (error: any) => void;
264
276
 
@@ -272,29 +284,6 @@ export interface IKafkaConsumer {
272
284
  StartConsumingMessages: (autoCommit: boolean, cb: ConsumeMessageCB, errorCb: ConsumeMessageErrorCB) => Promise<void>
273
285
  }
274
286
 
275
- export interface IIPCMessageProcessorIPCPayload {
276
- header: string
277
- messageId: string
278
- senderId: string
279
- senderRole: string
280
- requestPayload: JSONObject
281
- responsePayload: JSONObject
282
- pid: string
283
- messageType: 'REQUEST' | 'RESPONSE'
284
- }
285
-
286
- export interface IIPCMessageProcessorWorkerRecord {
287
- messageId: string
288
- senderId: string
289
- requestPayload: IIPCMessageProcessorIPCPayload
290
- responses: Record<string, IIPCMessageProcessorIPCPayload> // The key here will be the pid
291
- startTime: number
292
- endTime: number
293
- timeout: NodeJS.Timeout | null
294
- callBack: (payload: IIPCMessageProcessorIPCPayload, options: any) => void
295
- errorCallBack: (payload: IIPCMessageProcessorIPCPayload, option: any) => void
296
- }
297
-
298
287
  export const iss = `https://stscore.stsmda.org/oauth2/v2.0`;
299
288
 
300
289
  export interface STSExpressServer {
@@ -5,7 +5,7 @@ import https from 'https'
5
5
 
6
6
  import axios from 'axios';
7
7
 
8
- import cluster, { Worker } from 'node:cluster'
8
+ import cluster, { Worker, Address } from 'node:cluster'
9
9
 
10
10
  import chalk from 'chalk';
11
11
 
@@ -27,9 +27,8 @@ import { InstrumentDefinitions } from '@nsshunt/stsobservability'
27
27
  import { IPCMessagePayload, IPCMessageCommand } from './commonTypes'
28
28
 
29
29
  import { STSTransportLoggerWinston } from './stsTransportLoggerWinston'
30
- import { JSONObject } from "@nsshunt/stsutils";
31
30
 
32
- import { GetFirstNetworkInterface } from './network';
31
+ //import { GetFirstNetworkInterface } from './network';
33
32
 
34
33
  export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
35
34
  {
@@ -101,7 +100,11 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
101
100
  }
102
101
 
103
102
  #InitCluster = () => {
104
- cluster.on('listening', () => {
103
+ cluster.on('listening', (worker: Worker, address: Address) => {
104
+ this.emit('clusterListening', {
105
+ worker,
106
+ address
107
+ });
105
108
  let allListening = true;
106
109
  for (const worker of Object.values(cluster.workers as NodeJS.Dict<Worker>)) {
107
110
  if (worker?.isConnected) {
@@ -109,9 +112,9 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
109
112
  break;
110
113
  }
111
114
  }
112
-
113
115
  if (allListening) {
114
116
  this.LogInfoMessage(`Service instance started.`);
117
+ this.emit('allListening', null);
115
118
  }
116
119
  });
117
120
  };
@@ -158,6 +161,11 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
158
161
  //@@chmodSync(this.options.port, 511);
159
162
  }).on('listening', () =>
160
163
  {
164
+ this.emit('prometheusScrapesListening', {
165
+ url: `${this.options.endpoint}:${this.options.prometheusClusterPort}/metrics`,
166
+ endpoint: this.options.endpoint,
167
+ prometheusClusterPort: this.options.prometheusClusterPort
168
+ })
161
169
  this.LogInfoMessage(`Prometheus scrapes ready and live on ${this.options.endpoint}:${this.options.prometheusClusterPort}/metrics`);
162
170
  });
163
171
  } catch (error)
@@ -407,6 +415,10 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
407
415
  this.IncWorkers();
408
416
 
409
417
  worker.on('exit', (code, signal) => {
418
+ this.emit('workerExit', {
419
+ code,
420
+ signal
421
+ });
410
422
  if (signal) {
411
423
  this.LogInfoMessage(`Worker: ${worker.process.pid} was killed by signal: ${signal}`);
412
424
  } else if (code !== 0) {
@@ -417,6 +429,10 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
417
429
  });
418
430
 
419
431
  worker.on('message', async (payload) => {
432
+ this.emit('workerMessage', {
433
+ id: worker.id,
434
+ payload
435
+ });
420
436
  // Only handle request/response message types here ...
421
437
  if (payload.requestResponse) {
422
438
  const iPCMessagePayload: IPCMessagePayload = payload as IPCMessagePayload;
@@ -430,11 +446,16 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
430
446
  });
431
447
 
432
448
  worker.on('error', (error) => {
449
+ this.emit('workerError', {
450
+ error
451
+ } );
433
452
  const message = chalk.red(`#SpawnWorker():worker.on('error'): Error: [${error}]`);
434
453
  this.LogErrorMessage(message);
435
454
  });
436
455
 
437
- this.emit('workerAdded', worker.id);
456
+ this.emit('workerAdded', {
457
+ id: worker.id
458
+ });
438
459
 
439
460
  return worker.id;
440
461
  };
@@ -482,18 +503,28 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
482
503
 
483
504
  this.#InitCluster();
484
505
 
485
- cluster.on('listening', (worker, address) =>
486
- {
506
+ cluster.on('listening', (worker, address) => {
507
+ this.emit('clusterListening', {
508
+ worker,
509
+ address
510
+ });
487
511
  this.LogInfoMessage(`Worker process ${worker.process.pid} is listening at address: ${JSON.stringify(address)}`);
488
512
  });
489
513
 
490
514
  //Setting up lifecycle event listeners for worker processes
491
- cluster.on('online', worker =>
492
- {
515
+ cluster.on('online', worker => {
516
+ this.emit('clusterOnline', {
517
+ worker
518
+ });
493
519
  this.LogInfoMessage(`Worker process ${worker.process.pid} is online`);
494
520
  });
495
521
 
496
522
  cluster.on('exit', (worker, code, signal) => {
523
+ this.emit('clusterExit', {
524
+ worker,
525
+ code,
526
+ signal
527
+ });
497
528
  if ((code !== null && code === 0) || (signal === 'SIGINT')) {
498
529
  this.LogInfoMessage(chalk.green(`Process ${worker.process.pid} terminated gracefully with code: ${code}, signal: ${signal}`));
499
530
  this.DecWorkers();
@@ -590,20 +621,21 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
590
621
  }
591
622
  }
592
623
 
593
- process.on('SIGINT', async () =>
594
- {
624
+ process.on('SIGINT', async () => {
625
+ this.emit('processSigint', null);
595
626
  await Terminate('SIGINT');
596
627
  });
597
628
 
598
- process.on('SIGTERM', async () =>
599
- {
629
+ process.on('SIGTERM', async () => {
630
+ this.emit('processSigterm', null);
600
631
  await Terminate('SIGTERM');
601
632
  });
602
633
 
603
- process.on('exit', (code) =>
604
- {
605
- if (code === 0)
606
- {
634
+ process.on('exit', (code) => {
635
+ this.emit('processExit', {
636
+ code
637
+ });
638
+ if (code === 0) {
607
639
  this.LogInfoMessage(chalk.green(`Main Process: ${process.pid} terminated gracefully with code: ${code}`));
608
640
  } else {
609
641
  this.LogInfoMessage(chalk.red(`Main Process: ${process.pid} terminated with code: ${code}`));
@@ -616,15 +648,6 @@ export class MasterProcessBase extends ProcessBase implements IMasterProcessBase
616
648
  }, 1000).unref();
617
649
  }
618
650
 
619
- /*
620
- this.redisMessageHandler.AddGroup('primary');
621
-
622
- this.redisMessageHandler.on('GetSystemInformation', async (args: JSONObject, callback: any) => {
623
- const retVal = await this.#GetSystemInformation();
624
- callback(retVal);
625
- });
626
- */
627
-
628
651
  this.MasterStarted();
629
652
 
630
653
  this.LogInfoMessage(chalk.green(`Master process:${process.pid} started`));
@@ -22,7 +22,7 @@ import { PublishInstrumentController, IPublishInstrumentControllerOptions, Instr
22
22
 
23
23
  import os from 'os';
24
24
 
25
- import { IProcessBase, ISocketIoServerHelper, CreateServiceProcessContext, ProcessOptions, STSServerType } from './commonTypes'
25
+ import { IProcessBase, ISocketIoServerHelper, CreateServiceProcessContext, ProcessOptions, STSServerType, IProcessBaseEvents } from './commonTypes'
26
26
 
27
27
  //@@import { RedisMessageHandler } from '@nsshunt/stsmessaging'
28
28
  import { TinyEmitter } from 'tiny-emitter';
@@ -288,7 +288,7 @@ export abstract class ProcessBase extends TinyEmitter implements IProcessBase
288
288
  }
289
289
 
290
290
  async ProcessTerminate(): Promise<void> {
291
- this.emit('ProcessTerminate');
291
+ this.emit('ProcessTerminate', null);
292
292
 
293
293
  if (this.#systemInformationInterval) {
294
294
  clearTimeout(this.#systemInformationInterval);
@@ -428,6 +428,21 @@ export abstract class ProcessBase extends TinyEmitter implements IProcessBase
428
428
  return msgcolor;
429
429
  };
430
430
 
431
+ emit<K extends keyof IProcessBaseEvents>(event: K, arg: IProcessBaseEvents[K]): this {
432
+ super.emit(event, arg);
433
+ return this;
434
+ }
435
+
436
+ on<K extends keyof IProcessBaseEvents>(event: K, callback: (arg: IProcessBaseEvents[K]) => void): this {
437
+ super.on(event, callback);
438
+ return this;
439
+ }
440
+
441
+ off<K extends keyof IProcessBaseEvents>(event: K, callback: (arg: IProcessBaseEvents[K]) => void): this {
442
+ super.off(event, callback);
443
+ return this;
444
+ }
445
+
431
446
  /*@@
432
447
  get redisMessageHandler(): RedisMessageHandler {
433
448
  return this.#redisMessageHandler as RedisMessageHandler;
@@ -10,7 +10,7 @@ import { createAdapter } from "@socket.io/redis-streams-adapter";
10
10
 
11
11
  import { JSONObject, Sleep } from '@nsshunt/stsutils'
12
12
 
13
- import { ProcessOptions, STSServerType } from './commonTypes'
13
+ import { ProcessOptions, STSServerType, IServerProcessBase } from './commonTypes'
14
14
  import { ProcessBase } from './processbase';
15
15
 
16
16
  import { register, Counter, collectDefaultMetrics, AggregatorRegistry } from 'prom-client'
@@ -28,12 +28,14 @@ import { createClient, RedisClientType } from 'redis';
28
28
 
29
29
  import jayson from 'jayson'
30
30
 
31
+ import { STSTransportLoggerWinston } from './stsTransportLoggerWinston'
32
+
31
33
  /**
32
34
  * todo
33
35
  * @typedef {Object} options - todo
34
36
  * @property {boolean} [wssServer=false] - Create a web socket server on this worker instance
35
37
  */
36
- export class ServerProcessBase extends ProcessBase
38
+ export abstract class ServerProcessBase extends ProcessBase implements IServerProcessBase
37
39
  {
38
40
  #masterProcessExitTime = goptions.masterProcessExitTime;
39
41
  #io: Server | null = null;
@@ -363,6 +365,73 @@ export class ServerProcessBase extends ProcessBase
363
365
  }
364
366
  }
365
367
 
368
+ async SetupServer(): Promise<boolean> {
369
+ return new Promise((resolve, reject) => {
370
+ try {
371
+ this.SetupInstrumentation();
372
+ setTimeout(async () => {
373
+ try {
374
+ await this.SetupServerEx();
375
+ resolve(true);
376
+ } catch (error) {
377
+ reject(error);
378
+ }
379
+ }, 100);
380
+ } catch (error) {
381
+ reject(error);
382
+ }
383
+ })
384
+ }
385
+
386
+ ProcessStarted() {
387
+ const transport = new STSTransportLoggerWinston({
388
+ stsApp: this
389
+ });
390
+ setTimeout(() => {
391
+ (this.options.logger as any).add(transport);
392
+ }, 0);
393
+ }
394
+
395
+ async SetupServerEx(): Promise<boolean> {
396
+ this.LogInfoMessage(chalk.green(`ServerProcessBase:SetupServerEx(): Main Process:${process.pid} Starting ...`));
397
+
398
+ this.ProcessStartup();
399
+
400
+ if (this.options.expressServerRouteFactory || this.options.expressServerRouteStaticFactory) {
401
+ this.expressServer = new STSExpressServer(this.options, this);
402
+ }
403
+
404
+ this.LogInfoMessage(`ServerProcessBase:SetupServerEx(): Worker instance starting. Service instance Id: [${this.options.serviceInstanceId}]`);
405
+
406
+ // Signal Codes
407
+ // https://en.wikipedia.org/wiki/Signal_(IPC)
408
+ process.on('SIGTERM', async () => {
409
+ this.LogInfoMessage(`ServerProcessBase:SetupServerEx(): SIGTERM signal received for worker: ${process.pid}`);
410
+ await this.Terminate(true, true);
411
+ });
412
+
413
+ process.on('SIGINT', async () => {
414
+ this.LogInfoMessage(`ServerProcessBase:SetupServerEx(): SIGINT signal received for worker: ${process.pid}`);
415
+ await this.Terminate(true, true);
416
+ });
417
+
418
+ process.on('exit', (code) => {
419
+ if (code === 0) {
420
+ this.LogInfoMessage(chalk.green(`ServerProcessBase:SetupServerEx(): Process: ${process.pid} terminated gracefully with code: ${code}`));
421
+ } else {
422
+ this.LogInfoMessage(chalk.red(`ServerProcessBase:SetupServerEx(): Process: ${process.pid} terminated with code: ${code}`));
423
+ }
424
+ });
425
+
426
+ await this.SetupSTSServer();
427
+
428
+ this.ProcessStarted();
429
+
430
+ this.LogInfoMessage(chalk.green(`ServerProcessBase:SetupServerEx(): Main Process:${process.pid} Started`));
431
+
432
+ return true;
433
+ };
434
+
366
435
  SetupSTSServer = async(): Promise<void> => {
367
436
  switch (this.options.serverType) {
368
437
  case STSServerType.EXPRESS :
@@ -1,19 +1,14 @@
1
1
  /* eslint @typescript-eslint/no-explicit-any: 0 */ // --> OFF
2
2
  import { goptions } from '@nsshunt/stsconfig'
3
3
 
4
- import chalk from 'chalk';
5
-
6
4
  import { Gauge, GaugeTypes, InstrumentGaugeOptions, InstrumentGaugeTelemetry } from '@nsshunt/stsobservability'
7
5
 
8
6
  import { ISingleProcessBase, ProcessOptions } from './commonTypes';
9
7
  import { InstrumentDefinitions } from '@nsshunt/stsobservability'
10
- import { STSExpressServer } from './server'
11
8
  import { ServerProcessBase } from './serverprocessbase'
12
9
 
13
10
  import si from 'systeminformation' // https://systeminformation.io/
14
11
 
15
- import { STSTransportLoggerWinston } from './stsTransportLoggerWinston'
16
-
17
12
  export type EventCb = (socket: any, data: any) => void
18
13
 
19
14
  export class SingleProcessBase extends ServerProcessBase implements ISingleProcessBase
@@ -54,67 +49,12 @@ export class SingleProcessBase extends ServerProcessBase implements ISingleProce
54
49
  return null;
55
50
  }
56
51
 
57
- ProcessStarted() {
58
- const transport = new STSTransportLoggerWinston({
59
- stsApp: this
60
- });
61
- setTimeout(() => {
62
- (this.options.logger as any).add(transport);
63
- }, 0);
64
- }
65
-
66
- SetupServer(): Promise<boolean>
67
- {
68
- return new Promise((resolve, reject) => {
69
- try {
70
- this.SetupInstrumentation();
71
- setTimeout(async () => {
72
- try {
73
- await this.SetupServerEx();
74
- resolve(true);
75
- } catch (error) {
76
- reject(error);
77
- }
78
- }, 100);
79
- } catch (error) {
80
- reject(error);
81
- }
82
- })
83
- }
84
-
85
- SetupServerEx = async () => {
86
- this.ProcessStartup();
87
-
88
- if (this.options.expressServerRouteFactory || this.options.expressServerRouteStaticFactory) {
89
- this.expressServer = new STSExpressServer(this.options, this);
90
- }
91
-
92
- this.LogInfoMessage(`Service instance starting. Instance Id: [${this.options.serviceInstanceId}]`);
93
- this.LogInfoMessage(`Master process:${process.pid} started`);
52
+ override SetupServerEx = async (): Promise<boolean> => {
53
+ await super.SetupServerEx();
94
54
 
95
55
  this.LogSystemTelemetry();
96
56
 
97
- process.on('SIGINT', async () => {
98
- await this.Terminate(false, 'SIGINT');
99
- });
100
-
101
- process.on('SIGTERM', async () => {
102
- await this.Terminate(false, 'SIGTERM');
103
- });
104
-
105
- process.on('exit', (code) => {
106
- if (code === 0) {
107
- this.LogInfoMessage(chalk.green(`Main Process: ${process.pid} terminated gracefully with code: ${code}`));
108
- } else {
109
- this.LogInfoMessage(chalk.red(`Main Process: ${process.pid} terminated with code: ${code}`));
110
- }
111
- });
112
-
113
- await this.SetupSTSServer();
114
-
115
- this.ProcessStarted();
116
-
117
- this.LogInfoMessage(chalk.green(`Main process:${process.pid} started`));
57
+ return true;
118
58
  }
119
59
 
120
60
  async TerminateApplication()
@@ -4,13 +4,10 @@ import chalk from 'chalk';
4
4
  import { Gauge, InstrumentGaugeTelemetry } from '@nsshunt/stsobservability'
5
5
  import { JSONObject } from '@nsshunt/stsutils'
6
6
  import { IPCMessage, IPCMessages, IPCMessagePayload, IPCMessageCommand, IWorkerProcessBase, ProcessOptions } from './commonTypes'
7
- import { STSExpressServer } from './server';
8
7
  import { ServerProcessBase } from './serverprocessbase'
9
8
 
10
9
  import { v4 as uuidv4 } from 'uuid';
11
10
 
12
- import { STSTransportLoggerWinston } from './stsTransportLoggerWinston'
13
-
14
11
  import { goptions } from '@nsshunt/stsconfig'
15
12
 
16
13
  import si from 'systeminformation' // https://systeminformation.io/
@@ -31,15 +28,6 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
31
28
  super(options);
32
29
  }
33
30
 
34
- WorkerStarted() {
35
- const transport = new STSTransportLoggerWinston({
36
- stsApp: this
37
- });
38
- setTimeout(() => {
39
- (this.options.logger as any).add(transport);
40
- }, 0);
41
- }
42
-
43
31
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
44
32
  ReceivedMessageFromMaster(msg: any) {
45
33
  // Override in subclass if required
@@ -96,7 +84,6 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
96
84
  });
97
85
  return workerResponse.workerId;
98
86
  }
99
-
100
87
 
101
88
  DeleteWorker = async (workerId: string, options: any): Promise<JSONObject> => {
102
89
  const workerResponse: JSONObject = await this.#SendMessageToParentProcess({
@@ -121,13 +108,6 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
121
108
  return parentResponse;
122
109
  }
123
110
 
124
- SetupServer = async () => {
125
- this.SetupInstrumentation();
126
- setTimeout(() => {
127
- this.SetupServerEx();
128
- }, 100);
129
- }
130
-
131
111
  GetNumCPUs = async (): Promise<number> => {
132
112
  // https://systeminformation.io/
133
113
  const valueObject = {
@@ -191,16 +171,9 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
191
171
  return sysInfo;
192
172
  }
193
173
 
194
- SetupServerEx = async () => {
195
- this.ProcessStartup();
196
-
197
- if (this.options.expressServerRouteFactory || this.options.expressServerRouteStaticFactory) {
198
- this.expressServer = new STSExpressServer(this.options, this);
199
- }
200
-
201
- this.LogInfoMessage(`Worker instance starting. Service instance Id: [${this.options.serviceInstanceId}]`);
174
+ override SetupServerEx = async (): Promise<boolean> => {
175
+ await super.SetupServerEx();
202
176
 
203
-
204
177
  process.on('message', async (msg: any) => {
205
178
  if (msg.requestResponse) {
206
179
  const iPCMessagePayload: IPCMessagePayload = msg as IPCMessagePayload;
@@ -239,27 +212,7 @@ export class WorkerProcessBase extends ServerProcessBase implements IWorkerProce
239
212
  }
240
213
  });
241
214
 
242
- // Signal Codes
243
- // https://en.wikipedia.org/wiki/Signal_(IPC)
244
- process.on('SIGTERM', async () =>
245
- {
246
- this.LogInfoMessage(`SIGTERM signal received for worker: ${process.pid}`);
247
- await this.Terminate(true, true);
248
- });
249
-
250
- process.on('SIGINT', async () =>
251
- {
252
- this.LogInfoMessage(`SIGINT signal received for worker: ${process.pid}`);
253
- await this.Terminate(true, true);
254
- });
255
-
256
- await this.SetupSTSServer();
257
-
258
- //@@this.redisMessageHandler.AddGroup('worker');
259
-
260
- this.WorkerStarted();
261
-
262
- this.LogInfoMessage(chalk.green(`Worker process:${process.pid} started`));
215
+ return true;
263
216
  };
264
217
 
265
218
  override ProcessTerminate(): Promise<void> {