Documentation
¶
Overview ¶
Package sync is an interface for distributed synchronization
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrLockTimeout = errors.New("lock timeout") Flag = pflag.NewFlagSet("sync", pflag.ExitOnError) )
Functions ¶
This section is empty.
Types ¶
type ElectWatcher ¶ added in v1.4.8
ElectWatcher watch election event
type Leader ¶
type Leader interface {
// Id leader node
Id() string
// Resign resigns leadership
Resign() error
// Observe watch leadership event
Observe() chan ObserveResult
// Primary get the info of primary role
Primary() (*Member, error)
// Status returns when leadership is lost
Status() chan bool
}
Leader provides leadership election
type LeaderOption ¶
type LeaderOption func(o *LeaderOptions)
func LeaderNS ¶ added in v0.22.4
func LeaderNS(ns string) LeaderOption
LeaderNS sets the leader namespace
func LeaderTTL ¶ added in v0.22.4
func LeaderTTL(t int64) LeaderOption
LeaderTTL sets the leader ttl
type LeaderOptions ¶
type ListMembersOption ¶ added in v0.22.3
type ListMembersOption func(o *ListMembersOptions)
func MemberNS ¶ added in v0.22.4
func MemberNS(ns string) ListMembersOption
MemberNS sets the list member namespace
type ListMembersOptions ¶ added in v0.22.3
type ListMembersOptions struct {
Namespace string
}
type LockOption ¶
type LockOption func(o *LockOptions)
type ObserveResult ¶ added in v1.4.8
type Sync ¶
type Sync interface {
// Init Initialise options
Init(...Option) error
// Options Return the options
Options() Options
// Leader Elect a leader
Leader(ctx context.Context, name string, opts ...LeaderOption) (Leader, error)
// ListMembers get all election member
ListMembers(ctx context.Context, opts ...ListMembersOption) ([]*Member, error)
// WatchElect watch leader event
WatchElect(ctx context.Context, opts ...WatchElectOption) (ElectWatcher, error)
// Lock acquires a lock
Lock(ctx context.Context, id string, opts ...LockOption) error
// Unlock releases a lock
Unlock(ctx context.Context, id string) error
// String Sync implementation
String() string
}
Sync is an interface for distributed synchronization
type WatchElectOption ¶ added in v1.4.8
type WatchElectOption func(o *WatchElectOptions)
func WatchId ¶ added in v1.4.8
func WatchId(id string) WatchElectOption
WatchId sets the watch elector id
func WatchNS ¶ added in v1.4.8
func WatchNS(ns string) WatchElectOption
WatchNS sets the watch elector namespace
type WatchElectOptions ¶ added in v1.4.8
Click to show internal directories.
Click to hide internal directories.