You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
26 lines
700 B
26 lines
700 B
package cluster |
|
|
|
import ( |
|
"context" |
|
) |
|
|
|
const ( |
|
// EtcdLeaderElector is the id used when constructing an |
|
// etcdLeaderElector instance through the factory. |
|
EtcdLeaderElector = "etcd" |
|
) |
|
|
|
// LeaderElector is a general interface implementing basic leader elections |
|
// in a clustered environment. |
|
type LeaderElector interface { |
|
// Campaign starts a run for leadership. Campaign will block until |
|
// the caller is elected as the leader. |
|
Campaign(ctx context.Context) error |
|
|
|
// Resign resigns from the leader role, allowing other election members |
|
// to take on leadership. |
|
Resign() error |
|
|
|
// Leader returns the leader value for the current election. |
|
Leader(ctx context.Context) (string, error) |
|
}
|
|
|