1 import type { Worker
} from
'node:worker_threads';
3 import { type PoolEvent
, PoolEvents
, type ThreadPoolOptions
} from
'poolifier';
5 export enum WorkerProcessType
{
6 workerSet
= 'workerSet',
8 dynamicPool
= 'dynamicPool',
9 fixedPool
= 'fixedPool',
12 export interface SetInfo
{
17 elementsExecuting
: number;
18 elementsPerWorker
: number;
21 export enum WorkerSetEvents
{
25 elementStarted
= 'elementStarted',
26 elementError
= 'elementError',
29 export const WorkerEvents
= {
33 export type WorkerEvents
= PoolEvent
| WorkerSetEvents
;
35 export interface WorkerOptions
{
36 workerStartDelay
?: number;
37 elementStartDelay
?: number;
40 elementsPerWorker
?: number;
41 poolOptions
?: ThreadPoolOptions
;
44 export type WorkerData
= Record
<string, unknown
>;
46 export interface WorkerSetElement
{
48 numberOfWorkerElements
: number;
51 export interface WorkerMessage
<T
extends WorkerData
> {
52 event
: WorkerMessageEvents
;
56 export enum WorkerMessageEvents
{
57 startWorkerElement
= 'startWorkerElement',
58 startWorkerElementError
= 'startWorkerElementError',
59 startedWorkerElement
= 'startedWorkerElement',