Add tunable for charging station start delay for linear ramp up
[e-mobility-charging-stations-simulator.git] / src / types / Worker.ts
1 import { JsonType } from './JsonType';
2 import { PoolOptions } from 'poolifier';
3 import { Worker } from 'worker_threads';
4
5 export enum WorkerProcessType {
6 WORKER_SET = 'workerSet',
7 DYNAMIC_POOL = 'dynamicPool',
8 STATIC_POOL = 'staticPool'
9 }
10
11 export interface WorkerOptions {
12 workerStartDelay?: number;
13 elementStartDelay?: number;
14 poolMaxSize?: number;
15 poolMinSize?: number;
16 elementsPerWorker?: number;
17 poolOptions?: PoolOptions<Worker>;
18 messageHandler?: (message: unknown) => void | Promise<void>;
19 }
20
21 export interface WorkerStartOptions {
22 workerStartDelay: number;
23 elementStartDelay: number;
24 }
25
26 export type WorkerData = JsonType;
27
28 export interface WorkerSetElement {
29 worker: Worker;
30 numberOfWorkerElements: number;
31 }
32
33 export interface WorkerMessage<T extends WorkerData> {
34 id: WorkerMessageEvents;
35 data: T;
36 }
37
38 export enum WorkerMessageEvents {
39 START_WORKER_ELEMENT = 'startWorkerElement',
40 STOP_WORKER_ELEMENT = 'stopWorkerElement'
41 }
42