X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Fcharging-station%2FStationWorker.ts;h=31452ce0149225884e64d92943625fe775e0102a;hb=fd1fdf1b7bd53ee19679eb9c7d83b2592c32aed7;hp=8ddffc4e0b9abbe709d9eb2c560c719c4a8054a5;hpb=a4624c96a6c159b4885f5d0baaf592ceec0bab30;p=e-mobility-charging-stations-simulator.git diff --git a/src/charging-station/StationWorker.ts b/src/charging-station/StationWorker.ts index 8ddffc4e..31452ce0 100644 --- a/src/charging-station/StationWorker.ts +++ b/src/charging-station/StationWorker.ts @@ -1,4 +1,4 @@ -import { WorkerData, WorkerEvents } from '../types/Worker'; +import { StationWorkerData, WorkerEvents } from '../types/Worker'; import { isMainThread, parentPort, workerData } from 'worker_threads'; import ChargingStation from './ChargingStation'; @@ -6,6 +6,12 @@ import Constants from '../utils/Constants'; import { ThreadWorker } from 'poolifier'; import Utils from '../utils/Utils'; +// 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 addListener(); @@ -14,7 +20,7 @@ if (!isMainThread) { } } -function addListener() { +function addListener(): void { parentPort.on('message', (message) => { if (message.id === WorkerEvents.START_WORKER_ELEMENT) { startChargingStation(message.workerData); @@ -22,9 +28,7 @@ function addListener() { }); } -function startChargingStation(data: WorkerData) { +function startChargingStation(data: StationWorkerData): void { const station = new ChargingStation(data.index , data.templateFile); station.start(); } - -export default new ThreadWorker(startChargingStation, { maxInactiveTime: Constants.WORKER_POOL_MAX_INACTIVE_TIME, async: false });