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