Commit | Line | Data |
---|---|---|
c045d9a9 JB |
1 | import { Worker } from 'worker_threads'; |
2 | ||
8114d10e JB |
3 | import { PoolOptions } from 'poolifier'; |
4 | ||
5 | import { JsonObject } from './JsonType'; | |
6 | ||
a4624c96 JB |
7 | export enum WorkerProcessType { |
8 | WORKER_SET = 'workerSet', | |
9 | DYNAMIC_POOL = 'dynamicPool', | |
e7aeea18 | 10 | STATIC_POOL = 'staticPool', |
a4624c96 JB |
11 | } |
12 | ||
b8da29bc | 13 | export interface WorkerOptions { |
4bfd80fa JB |
14 | workerStartDelay?: number; |
15 | elementStartDelay?: number; | |
b8da29bc JB |
16 | poolMaxSize?: number; |
17 | poolMinSize?: number; | |
18 | elementsPerWorker?: number; | |
9efbac5b | 19 | poolOptions?: PoolOptions<Worker>; |
821c6c82 | 20 | messageHandler?: (message: unknown) => void | Promise<void>; |
b8da29bc JB |
21 | } |
22 | ||
e3822d6f | 23 | export type WorkerData = JsonObject; |
46eb543c | 24 | |
c045d9a9 | 25 | export interface WorkerSetElement { |
81797102 JB |
26 | worker: Worker; |
27 | numberOfWorkerElements: number; | |
28 | } | |
29 | ||
c3ee95af | 30 | export interface WorkerMessage<T extends WorkerData> { |
2a370053 | 31 | id: WorkerMessageEvents; |
c3ee95af | 32 | data: T; |
c045d9a9 JB |
33 | } |
34 | ||
2a370053 | 35 | export enum WorkerMessageEvents { |
c045d9a9 | 36 | START_WORKER_ELEMENT = 'startWorkerElement', |
e7aeea18 | 37 | STOP_WORKER_ELEMENT = 'stopWorkerElement', |
c045d9a9 | 38 | } |