UNPKG

@aurory/nestjs-k8s-leader-election

Version:
40 lines (39 loc) 1.35 kB
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; }