WorkerManager
Signature
export declare class WorkerManager extends Map<number, (ClusterWorker | WorkerThreadsWorker | {ready?: boolean; }) & {ready?: boolean; disconnected?: boolean; resharded?: boolean; }>Private types
WorkerManagerRuntimeOptionsTypeAlias
type WorkerManagerRuntimeOptions = PickPartial<Required<WorkerManagerNativeOptions>, WorkerManagerRuntimeOptionalKeys> | (PickPartial<Required<Omit<WorkerManagerCustomOptions, 'path'>>, WorkerManagerCustomRuntimeOptionalKeys> & { path?: string;});WorkerManagerConstructorOptionsTypeAlias
type WorkerManagerConstructorOptions = WorkerManagerOptions extends infer Options ? Options extends WorkerManagerOptions ? Omit<Options, WorkerManagerConstructorOptionalKeys | 'resharding'> & Partial<Pick<Options, WorkerManagerConstructorOptionalKeys>> & { resharding?: PickPartial<NonNullable<WorkerManagerOptions['resharding']>, 'getInfo'>;} : never : never;WorkerManagerNativeOptionsTypeAlias
type WorkerManagerNativeOptions = Exclude<WorkerManagerOptions, { mode: 'custom';}>;WorkerManagerRuntimeOptionalKeysTypeAlias
type WorkerManagerRuntimeOptionalKeys = 'adapter' | 'handleWorkerMessage' | 'handlePayload' | 'getRC';WorkerManagerCustomOptionsTypeAlias
type WorkerManagerCustomOptions = Extract<WorkerManagerOptions, { mode: 'custom';}>;WorkerManagerCustomRuntimeOptionalKeysTypeAlias
type WorkerManagerCustomRuntimeOptionalKeys = 'handleWorkerMessage' | 'handlePayload' | 'getRC';WorkerManagerConstructorOptionalKeysTypeAlias
type WorkerManagerConstructorOptionalKeys = 'token' | 'intents' | 'info' | 'handlePayload' | 'handleWorkerMessage';Properties
20Methods
19Properties
options: WorkerManagerRuntimeOptions;debugger?: Logger;connectQueue: ConnectQueue;workerQueue: (() => void)[];cacheAdapter: Adapter;promises: Map<string, { resolve: (value: any) => void; timeout: NodeJS.Timeout;}>;rest: ApiHandler;reshardingWorkerQueue: (() => void)[];private _info?;heartbeater: Heartbeater;remainingGetterget remaining(): number;concurrencyGetterget concurrency(): number;totalWorkersGetterget totalWorkers(): number;totalShardsGetterget totalShards(): number;shardStartGetterget shardStart(): number;shardEndGetterget shardEnd(): number;shardsPerWorkerGetterget shardsPerWorker(): number;private generateNonce;private generateSendPromise;private resolveSendPayload;Methods
static prepareSpaces(options: { shardStart: number; shardEnd: number; shardsPerWorker: number;}, logger?: Logger): number[][];constructorConstructorconstructor(options: WorkerManagerConstructorOptions);setCache(adapter: Adapter): void;setRest(rest: ApiHandler): void;syncLatency({ shardId, workerId, }: { shardId: number; workerId?: number;} | { shardId?: number; workerId: number;}): Promise<number>;calculateShardId(guildId: string): number;calculateWorkerId(shardId: number): number;postMessage(id: number, body: ManagerMessages | WorkerHeartbeaterMessages): void;prepareWorkers(shards: number[][], rawResharding?: boolean): void;createWorker(workerData: WorkerData): WorkerThreadsWorker | ({ ready?: boolean;} & { ready?: boolean; disconnected?: boolean; resharded?: boolean;}) | cluster.Worker;spawn(workerId: number, shardId: number, resharding?: boolean): void;handleWorkerMessage(message: WorkerMessages): Promise<void>;send(data: GatewaySendPayload, shardId: number): Promise<boolean>;getShardInfo(shardId: number): Promise<WorkerShardInfo>;getWorkerInfo(workerId: number): Promise<WorkerInfo>;tellWorker<R, V extends Record<string, unknown>>(workerId: number, func: (_: WorkerClient & UsingClient, vars: V) => R, vars: V): Promise<R>;tellWorkers<R, V extends Record<string, unknown>>(func: (_: WorkerClient & UsingClient, vars: V) => R, vars: V): Promise<Awaited<R>[]>;start(): Promise<void>;startResharding(): Promise<void>;