private constructor() {
this.started = false;
this.workerScript = path.join(
- // wouldn't path.resolve(./ChargingStationWorker.js) faster & simpler ?
- path.resolve(__dirname, '../'),
+ path.resolve(__dirname, '../'), // wouldn't path.resolve(./ChargingStationWorker.js) achieve the same result ?
'charging-station',
'ChargingStationWorker.js'
);
- this.initWorkerImplementation(); // init thread
- Configuration.getUIWebSocketServer().enabled && // create webSocket
+ this.initWorkerImplementation();
+ Configuration.getUIWebSocketServer().enabled &&
(this.uiWebSocketServer = new UIWebSocketServer({
...Configuration.getUIWebSocketServer().options,
handleProtocols: UIServiceUtils.handleProtocols,
}));
- Configuration.getPerformanceStorage().enabled && // create storage ??? but for what
+ Configuration.getPerformanceStorage().enabled &&
(this.storage = StorageFactory.getStorage(
Configuration.getPerformanceStorage().type,
Configuration.getPerformanceStorage().uri,
workerChoiceStrategy: Configuration.getWorkerPoolStrategy(),
},
messageHandler: async (msg: ChargingStationWorkerMessage) => {
- console.log('initWorkerImplementation: messageHandler: ', msg);
if (msg.id === ChargingStationWorkerMessageEvents.STARTED) {
this.uiWebSocketServer.chargingStations.add(msg.data.id as string);
- console.log(this.uiWebSocketServer.chargingStations);
} else if (msg.id === ChargingStationWorkerMessageEvents.STOPPED) {
this.uiWebSocketServer.chargingStations.delete(msg.data.id as string);
} else if (msg.id === ChargingStationWorkerMessageEvents.PERFORMANCE_STATISTICS) {
if (!isMainThread) {
throw new Error('Trying to get a worker implementation outside the main thread');
}
- workerOptions = workerOptions ?? ({} as WorkerOptions); // why not default parameter ?
+ workerOptions = workerOptions ?? ({} as WorkerOptions);
workerOptions.workerStartDelay =
- workerOptions?.workerStartDelay ?? WorkerConstants.DEFAULT_WORKER_START_DELAY; // why null safety ?
+ workerOptions?.workerStartDelay ?? WorkerConstants.DEFAULT_WORKER_START_DELAY;
workerOptions.elementStartDelay =
workerOptions?.elementStartDelay ?? WorkerConstants.DEFAULT_ELEMENT_START_DELAY;
workerOptions.poolOptions = workerOptions?.poolOptions ?? ({} as PoolOptions<Worker>);
// eslint-disable-next-line @typescript-eslint/no-misused-promises
(workerOptions.poolOptions.messageHandler = workerOptions.messageHandler);
console.log('before');
- let workerImplementation: WorkerAbstract<T> = null; // enabling strictNullChecks would be safer ?
+ let workerImplementation: WorkerAbstract<T> = null;
console.log(workerImplementation);
switch (workerProcessType) {
case WorkerProcessType.WORKER_SET:
id: WorkerMessageEvents.START_WORKER_ELEMENT,
data: elementData,
});
- this.getLastWorkerSetElement().numberOfWorkerElements++; // should there not be a hanshake to be safer ?
+ this.getLastWorkerSetElement().numberOfWorkerElements++;
// Start element sequentially to optimize memory at startup
if (this.workerOptions.elementStartDelay > 0) {
await Utils.sleep(this.workerOptions.elementStartDelay);