UNPKG

n8n

Version:

n8n Workflow Automation Tool

29 lines (28 loc) 1.16 kB
import { RedisClientService } from '../services/redis-client.service'; import { GlobalConfig } from '@n8n/config'; import { InstanceSettings } from 'n8n-core'; import { type Result } from 'n8n-workflow'; export type TtlRenewalResultKeyMissing = { id: 'key-missing'; }; export type TtlRenewalResultOtherHostIsLeader = { id: 'other-host-is-leader'; currentLeaderId: string; }; export type TtlRenewalResultSuccess = { id: 'success'; }; export type TtlRenewalResult = TtlRenewalResultKeyMissing | TtlRenewalResultOtherHostIsLeader | TtlRenewalResultSuccess; export declare class LeaderElectionClient { private readonly instanceSettings; private readonly redisClient; private readonly leaderKey; private readonly leaderKeyTtlInS; private get hostId(); constructor(instanceSettings: InstanceSettings, globalConfig: GlobalConfig, redisClientService: RedisClientService); getLeader(): Promise<Result<string | null, Error>>; setLeaderIfNotExists(): Promise<Result<boolean, Error>>; tryRenewLeaderTtl(): Promise<Result<TtlRenewalResult, Error>>; clearLeader(): Promise<Result<void, Error>>; destroy(): void; }