n8n
Version:
n8n Workflow Automation Tool
34 lines (33 loc) • 1.31 kB
TypeScript
import { Logger } from '@n8n/backend-common';
import { GlobalConfig } from '@n8n/config';
import { MultiMainMetadata } from '@n8n/decorators';
import { ErrorReporter, InstanceSettings } from 'n8n-core';
import { LeaderElectionClient } from '../scaling/leader-election-client';
import { TypedEmitter } from '../typed-emitter';
type MultiMainEvents = {
'leader-stepdown': never;
'leader-takeover': never;
};
export declare class MultiMainSetup extends TypedEmitter<MultiMainEvents> {
private readonly logger;
private readonly instanceSettings;
private readonly globalConfig;
private readonly metadata;
private readonly errorReporter;
private readonly client;
private leaderCheckInterval;
private leaderCheckInProgress;
private get hostId();
constructor(logger: Logger, instanceSettings: InstanceSettings, globalConfig: GlobalConfig, metadata: MultiMainMetadata, errorReporter: ErrorReporter, client: LeaderElectionClient);
init(): Promise<void>;
shutdown(): Promise<void>;
fetchLeaderKey(): Promise<string | null>;
registerEventHandlers(): void;
private checkLeader;
private checkAreWeStillLeader;
private checkCanBecomeLeader;
private takeOverAsLeader;
private stepDownToFollower;
private logRedisCommandFailure;
}
export {};