@eggjs/cluster
Version:
cluster manager for egg
63 lines (61 loc) • 1.49 kB
JavaScript
import { getSrcDirname } from "../../../dirname.js";
import path from "node:path";
import { existsSync } from "node:fs";
import { EventEmitter } from "node:events";
//#region src/utils/mode/base/agent.ts
var BaseAgentWorker = class {
instance;
#instanceId;
#instanceStatus;
constructor(instance) {
this.instance = instance;
}
get id() {
return this.#instanceId;
}
set id(id) {
this.#instanceId = id;
}
get status() {
return this.#instanceStatus;
}
set status(status) {
this.#instanceStatus = status;
}
static send(_message) {
throw new Error("BaseAgentWorker should implement send.");
}
static kill() {
throw new Error("BaseAgentWorker should implement kill.");
}
static gracefulExit(_options) {
throw new Error("BaseAgentWorker should implement gracefulExit.");
}
};
var BaseAgentUtils = class extends EventEmitter {
options;
messenger;
log;
logger;
startTime = 0;
constructor(options, { log, logger, messenger }) {
super();
this.options = options;
this.log = log;
this.logger = logger;
this.messenger = messenger;
}
getAgentWorkerFile() {
let agentWorkerFile = path.join(getSrcDirname(), "agent_worker.js");
if (!existsSync(agentWorkerFile)) agentWorkerFile = path.join(getSrcDirname(), "agent_worker.ts");
return agentWorkerFile;
}
fork() {
throw new Error("BaseAgent should implement fork.");
}
clean() {
throw new Error("BaseAgent should implement clean.");
}
};
//#endregion
export { BaseAgentUtils, BaseAgentWorker };