Documentation
¶
Index ¶
- Constants
- Variables
- func GetLocalIP() (ipv4 string, err error)
- func GetWorkerBarrierLeftKey(rootName string) string
- func GetWorkerBarrierName(rootName string) string
- func NewPathParser(rootName string) *pathParser
- type Coordinator
- type Generator
- type Hash
- type HashRing
- type Master
- type MasterConfig
- type Node
- type RawData
- type Task
- type TaskChange
- type WatchEvent
- type Watcher
- type Worker
- func (w *Worker) Add(task Task)
- func (w *Worker) Del(id string)
- func (w *Worker) IsAllRunning() bool
- func (w *Worker) SetStatus(status string)
- func (w *Worker) Start()
- func (w *Worker) Status() string
- func (w *Worker) Stop()
- func (w *Worker) Tasks(ctx context.Context) (map[string]struct{}, error)
- func (w *Worker) TryLeaveBarrier(d time.Duration) bool
- func (w *Worker) WatchTask() <-chan WatchEvent
- type WorkerTask
Constants ¶
View Source
const ( WorkerStatusNew = "new" // 0 WorkerStatusRegistered = "registered" // 1 WorkerStatusInBarrier = "in_barrier" // 2 WorkerStatusLeftBarrier = "left_barrier" // 3 WorkerStatusDead = "dead" // 4 )
View Source
const ( ActionNew = 1 ActionDeleted = 2 )
View Source
const (
ReasonFirstSchedule = "first schedule"
)
View Source
const (
WorkerValueRunning = "running"
)
Variables ¶
View Source
var (
ErrWorkerNumExceedMaximum = errors.New("worker num exceed maximum")
)
Functions ¶
func GetWorkerBarrierLeftKey ¶ added in v0.1.22
GetWorkerBarrierLeftKey /kline-pump-20220628/worker_barrier_left
func GetWorkerBarrierName ¶ added in v0.1.8
GetWorkerBarrierName /kline-pump/20220628/worker_barrier
func NewPathParser ¶ added in v0.1.60
func NewPathParser(rootName string) *pathParser
Types ¶
type Coordinator ¶ added in v0.1.60
func NewCoordinator ¶ added in v0.1.60
func NewCoordinator(replicas int) *Coordinator
func (*Coordinator) GetReBalanceResult ¶ added in v0.1.60
func (c *Coordinator) GetReBalanceResult(workers []string, generatedTaskMap map[string]Task, oldAssignMap map[string][]string) (toDeleteWorkerAllTask []string, toDeleteTask map[string][]string, toAddTask map[string][]string, err error)
GetReBalanceResult workerList current online worker list, elements are worker's name taskMap current task collection, key is ID ,value is task taskPathResp current assigned state taskPathResp []kv key: /Root/task/worker-0/task-abbr-1 value: task raw data for task 1
type HashRing ¶ added in v0.1.60
type HashRing struct {
// contains filtered or unexported fields
}
func NewHashRing ¶ added in v0.1.60
type Master ¶ added in v0.1.41
type Master struct {
Node
// balancer
RoundRobinBalancer balancer.Balancer
HashBalancer balancer.Balancer
// contains filtered or unexported fields
}
func NewMaster ¶ added in v0.1.41
func NewMaster(config MasterConfig, node Node) (*Master, error)
NewMaster create a scheduler
func (*Master) Campaign ¶ added in v0.1.58
Campaign
@Description: 竞选期间有子context,其控制的生命周期包括 1. 成为leader 2. 监听workers的变动,通知chan进行调度 3.定时调度 3. 打印 @receiver s @param ctx @return error
func (*Master) ElectionKey ¶ added in v0.1.58
func (*Master) NotifySchedule ¶ added in v0.1.41
type MasterConfig ¶ added in v0.1.41
type MasterConfig struct {
// Interval configures interval of schedule task.
// If Interval is <= 0, the default 60 seconds Interval will be used.
Interval time.Duration
Timeout time.Duration // The maximum time to schedule once
Generator Generator
ReBalanceWait time.Duration
Replicas int // replica count per node in consistent hash ring
}
func (*MasterConfig) Validation ¶ added in v0.1.41
func (sc *MasterConfig) Validation() error
type Node ¶
type Node struct {
EtcdConfig clientv3.Config
RootName string
// TTL configures the session's TTL in seconds.
// If TTL is <= 0, the default 60 seconds TTL will be used.
TTL int64 // worker registered in etcd
MaxNumNodes int // total worker num + 1 scheduler
Name string // if not set, default {ip}-{pid}
// contains filtered or unexported fields
}
func (*Node) GetDefaultName ¶ added in v0.1.31
type TaskChange ¶
func (TaskChange) CreatedTask ¶ added in v0.1.14
func (t TaskChange) CreatedTask() (Task, bool)
func (TaskChange) DeletedTask ¶ added in v0.1.14
func (t TaskChange) DeletedTask() (string, bool)
func (TaskChange) String ¶ added in v0.1.18
func (t TaskChange) String() string
type WatchEvent ¶ added in v0.1.14
type Watcher ¶ added in v0.1.26
type Watcher struct {
EventChan <-chan *clientv3.Event // output event channel
IncipientKVs []*mvccpb.KeyValue // initial kv with prefix
// contains filtered or unexported fields
}
func NewWatcher ¶ added in v0.1.26
NewWatcher 关于 watch 哪个版本: watch 某一个 key 时,想要从历史记录开始就用 CreateRevision,最新一条(这一条直接返回) 开始就用 ModRevision 。 watch 某个前缀,就必须使用 Revision。如果要watch当前前缀后续的变化,则应该从当前集群的 Revision+1 版本开始watch。
type Worker ¶
type Worker struct {
Node
// contains filtered or unexported fields
}
func (*Worker) IsAllRunning ¶ added in v0.1.57
func (*Worker) TryLeaveBarrier ¶ added in v0.1.16
func (*Worker) WatchTask ¶ added in v0.1.16
func (w *Worker) WatchTask() <-chan WatchEvent
type WorkerTask ¶ added in v0.1.49
type WorkerTask struct {
Task
// contains filtered or unexported fields
}
Click to show internal directories.
Click to hide internal directories.