Documentation ¶
Index ¶
Constants ¶
View Source
const (
// JitterFactor is the factor to jitter the RetryPeriod by
JitterFactor = 1.2
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶ added in v1.8.0
type Config struct { // Lock is the resource that will be used for locking Lock rl.Interface // LeaseDuration is the duration that non-leader candidates will // wait to force acquire leadership. This is measured against time of // last observed ack. LeaseDuration time.Duration // RenewDeadline is the duration that the acting master will retry // refreshing leadership before giving up. RenewDeadline time.Duration // RetryPeriod is the duration the LeaderElector clients should wait // between tries of actions. RetryPeriod time.Duration // TermLimit is the maximum duration that a leader may remain the leader // to complete the task before it must give up its leadership. 0 for forever // or indefinite. TermLimit time.Duration // Callbacks are callbacks that are triggered during certain lifecycle // events of the LeaderElector Callbacks LeaderCallbacks }
Config is a configuration for leader election
type LeaderCallbacks ¶
type LeaderCallbacks struct { // OnStartedLeading is called when a LeaderElector client starts leading OnStartedLeading func(stop <-chan struct{}) // OnStoppedLeading is called when a LeaderElector client stops leading OnStoppedLeading func() // OnNewLeader is called when the client observes a leader that is // not the previously observed leader. This includes the first observed // leader when the client starts. OnNewLeader func(identity string) }
LeaderCallbacks are callbacks that are triggered during certain lifecycle events of the LeaderElector. These are invoked asynchronously.
possible future callbacks:
- OnChallenge()
type LeaderElector ¶
type LeaderElector struct {
// contains filtered or unexported fields
}
LeaderElector is a leader election client.
possible future methods:
- (le *LeaderElector) IsLeader()
- (le *LeaderElector) GetLeader()
func NewLeaderElector ¶
func NewLeaderElector(lec Config) (*LeaderElector, error)
NewLeaderElector creates a LeaderElector from a Config
func (*LeaderElector) GetLeader ¶
func (le *LeaderElector) GetLeader() string
GetLeader returns the identity of the last observed leader or returns the empty string if no leader has yet been observed.
func (*LeaderElector) IsLeader ¶
func (le *LeaderElector) IsLeader() bool
IsLeader returns true if the last observed leader was this client else returns false.
func (*LeaderElector) Run ¶
func (le *LeaderElector) Run(task <-chan bool)
Run starts the leader election loop
Click to show internal directories.
Click to hide internal directories.