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', |
56e2e1ab | 7 | /** @experimental */ |
721646e9 | 8 | dynamicPool = 'dynamicPool', |
a807045b | 9 | fixedPool = 'fixedPool', |
a4624c96 JB |
10 | } |
11 | ||
e1d9a0f4 | 12 | export interface SetInfo { |
66a7748d JB |
13 | version: string |
14 | type: string | |
15 | worker: string | |
16 | size: number | |
17 | elementsExecuting: number | |
18 | elementsPerWorker: number | |
e1d9a0f4 | 19 | } |
b779c0f8 | 20 | |
810f4caf | 21 | export enum WorkerSetEvents { |
4c7c767b JB |
22 | started = 'started', |
23 | stopped = 'stopped', | |
810f4caf | 24 | error = 'error', |
c26984f2 | 25 | elementStarted = 'elementStarted', |
a807045b | 26 | elementError = 'elementError', |
810f4caf JB |
27 | } |
28 | ||
29 | export const WorkerEvents = { | |
30 | ...PoolEvents, | |
66a7748d JB |
31 | ...WorkerSetEvents |
32 | } as const | |
33 | // eslint-disable-next-line @typescript-eslint/no-redeclare | |
34 | export type WorkerEvents = PoolEvent | WorkerSetEvents | |
810f4caf | 35 | |
e1d9a0f4 | 36 | export interface WorkerOptions { |
66a7748d JB |
37 | workerStartDelay?: number |
38 | elementStartDelay?: number | |
39 | poolMaxSize: number | |
40 | poolMinSize: number | |
41 | elementsPerWorker?: number | |
42 | poolOptions?: ThreadPoolOptions | |
e1d9a0f4 | 43 | } |
b8da29bc | 44 | |
66a7748d | 45 | export type WorkerData = Record<string, unknown> |
46eb543c | 46 | |
e1d9a0f4 | 47 | export interface WorkerSetElement { |
66a7748d JB |
48 | worker: Worker |
49 | numberOfWorkerElements: number | |
e1d9a0f4 | 50 | } |
81797102 | 51 | |
e1d9a0f4 | 52 | export interface WorkerMessage<T extends WorkerData> { |
66a7748d JB |
53 | event: WorkerMessageEvents |
54 | data: T | |
e1d9a0f4 | 55 | } |
c045d9a9 | 56 | |
2a370053 | 57 | export enum WorkerMessageEvents { |
721646e9 | 58 | startWorkerElement = 'startWorkerElement', |
2bb7a73e | 59 | startWorkerElementError = 'startWorkerElementError', |
a807045b | 60 | startedWorkerElement = 'startedWorkerElement', |
c045d9a9 | 61 | } |