Commit | Line | Data |
---|---|---|
e3822d6f | 1 | import { JsonObject } 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', | |
e7aeea18 | 8 | STATIC_POOL = 'staticPool', |
a4624c96 JB |
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 | ||
e3822d6f | 21 | export type WorkerData = JsonObject; |
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; |
c3ee95af | 30 | data: T; |
c045d9a9 JB |
31 | } |
32 | ||
2a370053 | 33 | export enum WorkerMessageEvents { |
c045d9a9 | 34 | START_WORKER_ELEMENT = 'startWorkerElement', |
e7aeea18 | 35 | STOP_WORKER_ELEMENT = 'stopWorkerElement', |
c045d9a9 | 36 | } |