chore(deps-dev): apply updates
[e-mobility-charging-stations-simulator.git] / Worker.ts
... / ...
CommitLineData
1import { JsonType } from './JsonType';
2import { PoolOptions } from 'poolifier';
3import { Worker } from 'worker_threads';
4
5export enum WorkerProcessType {
6 WORKER_SET = 'workerSet',
7 DYNAMIC_POOL = 'dynamicPool',
8 STATIC_POOL = 'staticPool'
9}
10
11export interface WorkerOptions {
12 startDelay?: number;
13 poolMaxSize?: number;
14 poolMinSize?: number;
15 elementsPerWorker?: number;
16 poolOptions?: PoolOptions<Worker>;
17 messageHandler?: (message: unknown) => void | Promise<void>;
18}
19
20export type WorkerData = JsonType;
21
22export interface WorkerSetElement {
23 worker: Worker;
24 numberOfWorkerElements: number;
25}
26
27export interface WorkerMessage<T extends WorkerData> {
28 id: WorkerMessageEvents;
29 data: T;
30}
31
32export enum WorkerMessageEvents {
33 START_WORKER_ELEMENT = 'startWorkerElement',
34 STOP_WORKER_ELEMENT = 'stopWorkerElement'
35}
36