Storage: use worker threads message passing to store performance records from
[e-mobility-charging-stations-simulator.git] / src / types / Worker.ts
1 import { PoolOptions } from 'poolifier';
2 import { Worker } from 'worker_threads';
3
4 export enum WorkerProcessType {
5 WORKER_SET = 'workerSet',
6 DYNAMIC_POOL = 'dynamicPool',
7 STATIC_POOL = 'staticPool'
8 }
9
10 export interface WorkerOptions {
11 startDelay?: number;
12 poolMaxSize?: number;
13 poolMinSize?: number;
14 elementsPerWorker?: number;
15 poolOptions?: PoolOptions<Worker>;
16 }
17
18 // eslint-disable-next-line @typescript-eslint/no-empty-interface
19 export interface WorkerData {}
20
21 export interface StationWorkerData extends WorkerData {
22 index: number;
23 templateFile: string;
24 }
25
26 export interface WorkerSetElement {
27 worker: Worker;
28 numberOfWorkerElements: number;
29 }
30
31 export interface WorkerMessage {
32 id: WorkerEvents;
33 data: any;
34 }
35
36 export enum WorkerEvents {
37 START_WORKER_ELEMENT = 'startWorkerElement',
38 STOP_WORKER_ELEMENT = 'stopWorkerElement',
39 PERFORMANCE_STATISTICS = 'performanceStatistics'
40 }
41