@eggjs/cluster
Version:
cluster manager for egg
56 lines (55 loc) • 1.71 kB
TypeScript
import { MessageBody, Messenger } from "../../messenger.js";
import { MasterOptions } from "../../../master.js";
import { Logger } from "egg-logger";
import { EventEmitter } from "node:events";
import { Worker } from "node:worker_threads";
import { Worker as Worker$1 } from "node:cluster";
//#region src/utils/mode/base/app.d.ts
declare abstract class BaseAppWorker<T = Worker | Worker$1> {
instance: T;
constructor(instance: T);
abstract get workerId(): number;
abstract get id(): number;
get state(): string;
set state(state: string);
abstract get exitedAfterDisconnect(): boolean;
abstract get exitCode(): number;
get disableRefork(): boolean;
set disableRefork(disableRefork: boolean);
get isDevReload(): boolean;
set isDevReload(isDevReload: boolean);
abstract send(data: MessageBody): void;
clean(): void;
static get workerId(): number;
static on(..._args: any[]): void;
static send(_message: MessageBody): void;
static kill(): void;
static gracefulExit(_options: any): void;
}
type LogFun = (msg: any, ...args: any[]) => void;
declare abstract class BaseAppUtils extends EventEmitter {
options: MasterOptions;
protected messenger: Messenger;
protected log: LogFun;
protected logger: Logger;
protected isProduction: boolean;
startTime: number;
startSuccessCount: number;
isAllWorkerStarted: boolean;
constructor(options: MasterOptions, {
log,
logger,
messenger,
isProduction
}: {
log: LogFun;
logger: Logger;
messenger: Messenger;
isProduction: boolean;
});
getAppWorkerFile(): string;
fork(): void;
abstract kill(timeout: number): Promise<void>;
}
//#endregion
export { BaseAppUtils, BaseAppWorker };