pipeproc
Version:
Multi-process log processing for nodejs
319 lines (318 loc) • 9.18 kB
TypeScript
import { ICommitLog } from "../client";
import { IProc } from "../node/proc";
import { ISystemProc } from "../node/systemProc";
export interface IPipeProcMessageSchema {
type: string;
msgKey?: string;
errStatus?: string;
data?: object;
}
export interface IPipeProcMessage extends IPipeProcMessageSchema {
msgKey: string;
}
export interface IPipeProcLogMessage extends IPipeProcMessage {
data: {
commitLog: {
topic: string;
body: string;
} | {
topic: string;
body: string;
}[];
};
}
export interface IPipeProcLogMessageReply extends IPipeProcMessage {
data: {
id: string | string[];
};
}
export interface IPipeProcAckLogMessage extends IPipeProcMessage {
data: {
procName: string;
commitLog: {
topic: string;
body: string;
} | {
topic: string;
body: string;
}[];
};
}
export interface IPipeProcAckLogMessageReply extends IPipeProcMessage {
data: {
ackedLogId: string;
id: string | string[];
};
}
export interface IPipeProcProcMessage extends IPipeProcMessage {
data: {
options: {
name: string;
topic: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
};
};
}
export interface IPipeProcProcMessageReply extends IPipeProcMessage {
data?: {
id: string;
data: string;
} | {
id: string;
data: string;
}[];
}
export interface IPipeProcAvailableProcMessage extends IPipeProcMessage {
data: {
procList: {
name: string;
topic: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
}[];
};
}
export interface IPipeProcAvailableProcMessageReply extends IPipeProcMessage {
data?: {
log?: {
id: string;
data: string;
} | {
id: string;
data: string;
}[];
procName?: string;
};
}
export interface IPipeProcSystemProcMessage extends IPipeProcMessage {
data: {
options: {
name: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
from: string | string[];
to: string | string[];
inlineProcessor?: string;
externalProcessor?: string;
};
};
type: "system_proc";
}
export interface IPipeProcSystemProcMessageReply extends IPipeProcMessage {
data: {
proc?: IProc | IProc[];
};
type: "system_proc_ok" | "system_proc_error";
errStatus?: string;
}
export interface IPipeProcRangeMessage extends IPipeProcMessage {
data: {
topic: string;
options: {
start: string;
end: string;
limit: number;
exclusive: boolean;
reverse: false;
};
};
}
export interface IPipeProcRangeMessageReply extends IPipeProcMessage {
data: {
results: {
id: string;
data: string;
}[];
};
}
export interface IPipeProcAckMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcAckMessageReply extends IPipeProcMessage {
data: {
id: string;
};
}
export interface IPipeProcInspectProcMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcInspectProcMessageReply extends IPipeProcMessage {
data: {
proc: IProc;
};
}
export interface IPipeProcDisableProcMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcDisableProcMessageReply extends IPipeProcMessage {
data: {
proc: IProc;
};
}
export interface IPipeProcResumeProcMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcResumeProcMessageReply extends IPipeProcMessage {
data: {
proc: IProc;
};
}
export interface IPipeProcDestroyProcMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcDestroyProcMessageReply extends IPipeProcMessage {
data: {
proc: IProc;
};
}
export interface IPipeProcReclaimProcMessage extends IPipeProcMessage {
data: {
procName: string;
};
}
export interface IPipeProcReclaimProcMessageReply extends IPipeProcMessage {
data: {
lastClaimedRange: string;
};
}
export interface IPipeProcSystemInitMessage extends IPipeProcMessage {
type: "system_init";
data: {
options: {
memory?: boolean;
location?: string;
workers: number;
workerConcurrency: number;
workerRestartAfter: number;
gc?: {
minPruneTime?: number;
interval?: number;
} | boolean;
};
};
}
export interface IPipeProcWorkerInitMessage extends IPipeProcMessage {
type: "worker_init";
data: {
address: string;
tls: {
key: string;
cert: string;
ca: string;
} | false;
workerConcurrency: number;
workerRestartAfter: number;
};
}
export interface IPipeProcInitIPCMessage extends IPipeProcMessage {
type: "init_ipc";
data: {
address: string;
tls: {
server: {
key: string;
cert: string;
ca: string;
};
client: {
key: string;
cert: string;
ca: string;
};
} | false;
};
}
export interface IPipeProcIPCEstablishedMessage extends IPipeProcMessage {
type: "ipc_established";
}
export interface IPipeProcWorkerInitMessageReply extends IPipeProcMessage {
type: "worker_connected" | "worker_connection_failure";
errStatus?: string;
}
export interface IPipeProcPingMessage extends IPipeProcMessage {
type: "ping";
}
export interface IPipeProcPingMessageReply extends IPipeProcMessage {
type: "pong";
}
export interface IPipeProcRegisterSystemProcsMessage extends IPipeProcMessage {
type: "register_system_procs";
data: {
procs: IProc[];
systemProcs: ISystemProc[];
};
}
export interface IPipeProcWaitForProcsMessage extends IPipeProcMessage {
type: "wait_for_procs";
data: {
procs: string[];
};
}
export interface IPipeProcRegisterSystemProcsMessageReply extends IPipeProcMessage {
type: "register_system_proc_ok" | "register_system_proc_error";
errStatus?: string;
}
export declare function prepareMessage(msg: IPipeProcMessageSchema): IPipeProcMessage;
export declare function prepareLogMessage(msg: IPipeProcMessage, commitLog: ICommitLog | ICommitLog[]): IPipeProcLogMessage;
export declare function prepareProcMessage(msg: IPipeProcMessage, options: {
name: string;
topic: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
}): IPipeProcProcMessage;
export declare function prepareAvailableProcMessage(msg: IPipeProcMessage, procList: {
name: string;
topic: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
}[]): IPipeProcAvailableProcMessage;
export declare function prepareSystemProcMessage(options: {
name: string;
offset: string;
count: number;
maxReclaims: number;
reclaimTimeout: number;
onMaxReclaimsReached: string;
from: string | string[];
to: string | string[];
inlineProcessor?: string;
externalProcessor?: string;
}): IPipeProcSystemProcMessage;
export declare function prepareAckLogMessage(msg: IPipeProcMessage, procname: string, commitLog: ICommitLog | ICommitLog[]): IPipeProcAckLogMessage;
export declare function prepareAckMessage(msg: IPipeProcMessage, procname: string): IPipeProcAckMessage;
export declare function prepareDestroyProcMessage(msg: IPipeProcMessage, procname: string): IPipeProcDestroyProcMessage;
export declare function prepareDisableProcMessage(msg: IPipeProcMessage, procname: string): IPipeProcDisableProcMessage;
export declare function prepareResumeProcMessage(msg: IPipeProcMessage, procname: string): IPipeProcResumeProcMessage;
export declare function prepareReclaimProcMessage(msg: IPipeProcMessage, procname: string): IPipeProcReclaimProcMessage;
export declare function prepareWorkerInitMessage(address: string, tls: {
key: string;
cert: string;
ca: string;
} | false, workerConcurrency: number, workerRestartAfter: number): IPipeProcWorkerInitMessage;
export declare function prepareRegisterSystemProcsMessage(procs: IProc[], systemProcs: ISystemProc[]): IPipeProcRegisterSystemProcsMessage;