Switch to poolifier worker threads pool implementation.
[e-mobility-charging-stations-simulator.git] / src / worker / WorkerFactory.ts
1 import Configuration from '../utils/Configuration';
2 import WorkerDynamicPool from './WorkerDynamicPool';
3 import { WorkerProcessType } from '../types/Worker';
4 import WorkerSet from './WorkerSet';
5 import WorkerStaticPool from './WorkerStaticPool';
6 import Wrk from './Wrk';
7
8 export default class WorkerFactory {
9 public static getWorkerImpl(workerScript: string): Wrk {
10 switch (Configuration.getWorkerProcess()) {
11 case WorkerProcessType.WORKER_SET:
12 return new WorkerSet(workerScript, Configuration.getChargingStationsPerWorker());
13 case WorkerProcessType.STATIC_POOL:
14 return new WorkerStaticPool(workerScript, Configuration.getWorkerPoolMaxSize());
15 case WorkerProcessType.DYNAMIC_POOL:
16 return new WorkerDynamicPool(workerScript, Configuration.getWorkerPoolMinSize(), Configuration.getWorkerPoolMaxSize());
17 default:
18 return null;
19 }
20 }
21 }