X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FStationWorker.ts;h=65e2fb8832883662aadb145798da9783f37a1ae2;hb=d544e3d43f81d29395c5b72d8f799f59c8b05cee;hp=c0e85748ec0918b2f184d3561ee1f30100eddfb8;hpb=3e1416d80bd2640a5fe59cb4bc95c421dcd601d6;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/StationWorker.ts b/src/charging-station/StationWorker.ts index c0e85748..65e2fb88 100644 --- a/src/charging-station/StationWorker.ts +++ b/src/charging-station/StationWorker.ts @@ -1,8 +1,16 @@ +import { StationWorkerData, WorkerEvents } from '../types/Worker'; import { isMainThread, parentPort, workerData } from 'worker_threads'; import ChargingStation from './ChargingStation'; +import Constants from '../utils/Constants'; +import { ThreadWorker } from 'poolifier'; import Utils from '../utils/Utils'; -import { WorkerEvents } from '../types/WorkerEvents'; + +// Conditionally export ThreadWorker instance for pool usage +export let threadWorker; +if (Utils.workerPoolInUse()) { + threadWorker = new ThreadWorker(startChargingStation, { maxInactiveTime: Constants.WORKER_POOL_MAX_INACTIVE_TIME, async: false }); +} if (!isMainThread) { // Add listener to start charging station from main thread @@ -20,7 +28,7 @@ function addListener() { }); } -function startChargingStation(data: any) { - const station = new ChargingStation(data.index as number, data.templateFile as string); +function startChargingStation(data: StationWorkerData) { + const station = new ChargingStation(data.index , data.templateFile); station.start(); }