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 { |
322c9192 | 12 | startDelay?: number; |
b8da29bc JB |
13 | poolMaxSize?: number; |
14 | poolMinSize?: number; | |
15 | elementsPerWorker?: number; | |
9efbac5b | 16 | poolOptions?: PoolOptions<Worker>; |
821c6c82 | 17 | messageHandler?: (message: unknown) => void | Promise<void>; |
b8da29bc JB |
18 | } |
19 | ||
c3ee95af | 20 | export type WorkerData = JsonType; |
46eb543c | 21 | |
c045d9a9 | 22 | export interface WorkerSetElement { |
81797102 JB |
23 | worker: Worker; |
24 | numberOfWorkerElements: number; | |
25 | } | |
26 | ||
c3ee95af | 27 | export interface WorkerMessage<T extends WorkerData> { |
2a370053 | 28 | id: WorkerMessageEvents; |
c3ee95af | 29 | data: T; |
c045d9a9 JB |
30 | } |
31 | ||
2a370053 | 32 | export enum WorkerMessageEvents { |
c045d9a9 | 33 | START_WORKER_ELEMENT = 'startWorkerElement', |
98dc07fa | 34 | STOP_WORKER_ELEMENT = 'stopWorkerElement' |
c045d9a9 JB |
35 | } |
36 |