Commit | Line | Data |
---|---|---|
9efbac5b | 1 | import { PoolOptions } from 'poolifier'; |
c045d9a9 JB |
2 | import { Worker } from 'worker_threads'; |
3 | ||
a4624c96 JB |
4 | export enum WorkerProcessType { |
5 | WORKER_SET = 'workerSet', | |
6 | DYNAMIC_POOL = 'dynamicPool', | |
7 | STATIC_POOL = 'staticPool' | |
8 | } | |
9 | ||
b8da29bc | 10 | export interface WorkerOptions { |
322c9192 | 11 | startDelay?: number; |
b8da29bc JB |
12 | poolMaxSize?: number; |
13 | poolMinSize?: number; | |
14 | elementsPerWorker?: number; | |
9efbac5b | 15 | poolOptions?: PoolOptions<Worker>; |
821c6c82 | 16 | messageHandler?: (message: unknown) => void | Promise<void>; |
b8da29bc JB |
17 | } |
18 | ||
322c9192 JB |
19 | // eslint-disable-next-line @typescript-eslint/no-empty-interface |
20 | export interface WorkerData {} | |
46eb543c | 21 | |
07f35004 | 22 | export interface ChargingStationWorkerData extends WorkerData { |
c045d9a9 JB |
23 | index: number; |
24 | templateFile: string; | |
25 | } | |
26 | ||
27 | export interface WorkerSetElement { | |
81797102 JB |
28 | worker: Worker; |
29 | numberOfWorkerElements: number; | |
30 | } | |
31 | ||
32 | export interface WorkerMessage { | |
2a370053 | 33 | id: WorkerMessageEvents; |
81797102 | 34 | data: any; |
c045d9a9 JB |
35 | } |
36 | ||
2a370053 | 37 | export enum WorkerMessageEvents { |
c045d9a9 | 38 | START_WORKER_ELEMENT = 'startWorkerElement', |
81797102 JB |
39 | STOP_WORKER_ELEMENT = 'stopWorkerElement', |
40 | PERFORMANCE_STATISTICS = 'performanceStatistics' | |
c045d9a9 JB |
41 | } |
42 |