- // Add new charging station to existing Worker
- worker.startNewChargingStation(workerData, numStationsTotal)
+ // eslint-disable-next-line no-lonely-if
+ if (chargingStationsPerWorkerCounter === 0 || chargingStationsPerWorkerCounter >= chargingStationsPerWorker) {
+ // Start new WorkerGroup with one charging station
+ workerImplementation = new WorkerGroup('./dist/charging-station/StationWorker.js', workerData, chargingStationsPerWorker);
+ void workerImplementation.start();
+ numConcurrentWorkers++;
+ chargingStationsPerWorkerCounter = 1;
+ numStationsTotal++;
+ // Start worker sequentially to optimize memory at start time
+ await Utils.sleep(Constants.START_WORKER_DELAY);
+ } else {
+ // Add charging station to existing WorkerGroup
+ void workerImplementation.addElement(workerData);
+ chargingStationsPerWorkerCounter++;
+ numStationsTotal++;
+ }