Commit | Line | Data |
---|---|---|
66a7748d | 1 | import type { Worker } from 'node:worker_threads' |
c045d9a9 | 2 | |
66a7748d | 3 | import { type PoolEvent, PoolEvents, type ThreadPoolOptions } from 'poolifier' |
8114d10e | 4 | |
a4624c96 | 5 | export enum WorkerProcessType { |
721646e9 | 6 | workerSet = 'workerSet', |
244c1396 | 7 | fixedPool = 'fixedPool', |
56e2e1ab | 8 | /** @experimental */ |
244c1396 | 9 | dynamicPool = 'dynamicPool' |
a4624c96 JB |
10 | } |
11 | ||
e1d9a0f4 | 12 | export interface SetInfo { |
66a7748d JB |
13 | version: string |
14 | type: string | |
15 | worker: string | |
4f02e9b4 | 16 | started: boolean |
66a7748d JB |
17 | size: number |
18 | elementsExecuting: number | |
19 | elementsPerWorker: number | |
e1d9a0f4 | 20 | } |
b779c0f8 | 21 | |
810f4caf | 22 | export enum WorkerSetEvents { |
4c7c767b JB |
23 | started = 'started', |
24 | stopped = 'stopped', | |
810f4caf | 25 | error = 'error', |
244c1396 | 26 | elementAdded = 'elementAdded', |
a223d9be | 27 | elementError = 'elementError' |
810f4caf JB |
28 | } |
29 | ||
30 | export const WorkerEvents = { | |
31 | ...PoolEvents, | |
66a7748d JB |
32 | ...WorkerSetEvents |
33 | } as const | |
34 | // eslint-disable-next-line @typescript-eslint/no-redeclare | |
35 | export type WorkerEvents = PoolEvent | WorkerSetEvents | |
810f4caf | 36 | |
e1d9a0f4 | 37 | export interface WorkerOptions { |
66a7748d JB |
38 | workerStartDelay?: number |
39 | elementStartDelay?: number | |
40 | poolMaxSize: number | |
41 | poolMinSize: number | |
42 | elementsPerWorker?: number | |
43 | poolOptions?: ThreadPoolOptions | |
e1d9a0f4 | 44 | } |
b8da29bc | 45 | |
66a7748d | 46 | export type WorkerData = Record<string, unknown> |
46eb543c | 47 | |
e1d9a0f4 | 48 | export interface WorkerSetElement { |
66a7748d JB |
49 | worker: Worker |
50 | numberOfWorkerElements: number | |
e1d9a0f4 | 51 | } |
81797102 | 52 | |
e1d9a0f4 | 53 | export interface WorkerMessage<T extends WorkerData> { |
66a7748d JB |
54 | event: WorkerMessageEvents |
55 | data: T | |
e1d9a0f4 | 56 | } |
c045d9a9 | 57 | |
2a370053 | 58 | export enum WorkerMessageEvents { |
244c1396 JB |
59 | addWorkerElement = 'addWorkerElement', |
60 | addedWorkerElement = 'addedWorkerElement', | |
61 | workerElementError = 'workerElementError' | |
c045d9a9 | 62 | } |