@aurory/nestjs-k8s-leader-election
Version:
Nestjs k8s leader election
40 lines (39 loc) • 1.35 kB
TypeScript
import { OnApplicationBootstrap } from '@nestjs/common';
import { EventEmitter2 } from '@nestjs/event-emitter';
import { LeaderElectionOptions } from './leader-election-options.interface';
export declare class LeaderElectionService implements OnApplicationBootstrap {
private options;
private readonly eventEmitter;
private readonly logger;
private kubeClient;
private watch;
private readonly leaseName;
private readonly namespace;
private readonly renewalInterval;
private readonly durationInSeconds;
private isLeader;
private readonly logAtLevel;
private leaseRenewalTimeout;
private readonly awaitLeadership;
LEADER_IDENTITY: string;
constructor(options: LeaderElectionOptions, eventEmitter: EventEmitter2);
onApplicationBootstrap(): Promise<void>;
private runLeaderElectionProcess;
private tryToBecomeLeader;
private acquireLease;
private renewLease;
private getLease;
private createLease;
private isLeaseExpired;
private isLeaseHeldByUs;
private gracefulShutdown;
private releaseLease;
private emitLeaderElectedEvent;
private emitLeadershipLostEvent;
private becomeLeader;
private loseLeadership;
private watchLeaseObject;
private scheduleLeaseRenewal;
private handleLeaseUpdate;
private handleLeaseDeletion;
}