Documentation ¶
Index ¶
- Constants
- Variables
- func GetLocalIP() (ipv4 string, err error)
- func GetWorkerBarrierLeftKey(rootName string) string
- func GetWorkerBarrierName(rootName string) string
- type Assigner
- type Generator
- 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
Types ¶
type Assigner ¶ added in v0.1.29
func (*Assigner) GetBalancer ¶ added in v0.1.29
func (*Assigner) GetReBalanceResult ¶ added in v0.1.29
func (a *Assigner) GetReBalanceResult(workerList []string, taskMap map[string]Task, taskPathResp []*mvccpb.KeyValue) (toDeleteWorkerTaskKey map[string]struct{}, toDeleteTaskKey []string, assignMap map[string][]Task, 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 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 }
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.