Make the worker start delay a tunable.
[e-mobility-charging-stations-simulator.git] / src / charging-station / Bootstrap.ts
index 503c6bd2401f3a530a0e02fa55bc3239d1d3ade6..bb101ca7b75bf3f79153770a0d0dce82ef51d494 100644 (file)
@@ -64,11 +64,9 @@ export default class Bootstrap {
 
   public async stop(): Promise<void> {
     if (isMainThread && this.started) {
-      if (this.getWorkerImplementationInstance()) {
-        await this.getWorkerImplementationInstance().stop();
-        // Nullify to force worker implementation instance creation
-        this.workerImplementationInstance = null;
-      }
+      await this.getWorkerImplementationInstance().stop();
+      // Nullify to force worker implementation instance creation
+      this.workerImplementationInstance = null;
     }
     this.started = false;
   }
@@ -80,11 +78,13 @@ export default class Bootstrap {
 
   private getWorkerImplementationInstance(): WorkerAbstract {
     if (!this.workerImplementationInstance) {
-      this.workerImplementationInstance = WorkerFactory.getWorkerImplementation<StationWorkerData>(this.workerScript, Configuration.getWorkerProcess(), {
-        poolMaxSize: Configuration.getWorkerPoolMaxSize(),
-        poolMinSize: Configuration.getWorkerPoolMinSize(),
-        elementsPerWorker: Configuration.getChargingStationsPerWorker()
-      });
+      this.workerImplementationInstance = WorkerFactory.getWorkerImplementation<StationWorkerData>(this.workerScript, Configuration.getWorkerProcess(),
+        {
+          startDelay: Configuration.getWorkerStartDelay(),
+          poolMaxSize: Configuration.getWorkerPoolMaxSize(),
+          poolMinSize: Configuration.getWorkerPoolMinSize(),
+          elementsPerWorker: Configuration.getChargingStationsPerWorker()
+        });
     }
     return this.workerImplementationInstance;
   }