schedule

package
v0.0.0-...-ba59bca Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 14, 2022 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ModeAuto int32 = iota
	ModeManual
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AlertChannel

type AlertChannel interface {
	Send(options data.Options, users []*store.User, vars data.Map) (err error)
}

type Alerter

type Alerter struct {
	// contains filtered or unexported fields
}

func (*Alerter) Alert

func (a *Alerter) Alert(jobId string, info string)

type CallResult

type CallResult struct {
	Code int32  `json:"code"`
	Info string `json:"info,omitempty"`
}

func (*CallResult) Success

func (r *CallResult) Success() bool

type Caller

type Caller interface {
	// Call dispatches task to remote runner.
	Call(addrs []string, t *Job) *CallResult
}

Caller format: http://abc, simple://

type DirectResolver

type DirectResolver struct {
}

func (DirectResolver) Resolve

func (r DirectResolver) Resolve(runner string) (schema string, addrs []string, err error)

type EmailChannel

type EmailChannel struct {
}

func (EmailChannel) Send

func (c EmailChannel) Send(options data.Options, users []*store.User, vars data.Map) (err error)

type HTTPCaller

type HTTPCaller struct {
}

func (HTTPCaller) Call

func (c HTTPCaller) Call(addrs []string, j *Job) (r *CallResult)

type Job

type Job struct {
	Id      string       `json:"id"`
	Task    string       `json:"task"`
	Handler string       `json:"handler"`
	Args    data.Options `json:"args"`
	Mode    int32        `json:"mode"` // 0-auto, 1-manual
	Fire    int64        `json:"fire"`
	// contains filtered or unexported fields
}

func NewJob

func NewJob(t *store.Task, args data.Options, mode int32, fire time.Time) *Job

type NacosResolver

type NacosResolver struct {
}

func (NacosResolver) Resolve

func (r NacosResolver) Resolve(runner string) (schema string, addrs []string, err error)

type Resolver

type Resolver interface {
	Resolve(runner string) (schema string, addrs []string, err error)
}

func NewDirectResolver

func NewDirectResolver() Resolver

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

Scheduler dispatch task to executors to run by plan.

func NewScheduler

func NewScheduler(lock lock.Lock, resolver Resolver, ts store.TaskStore, js store.JobStore, alerter *Alerter) *Scheduler

func (*Scheduler) Execute

func (s *Scheduler) Execute(name string, args data.Options) error

Execute dispatches task immediately.

func (*Scheduler) Retry

func (s *Scheduler) Retry(id string) error

func (*Scheduler) Start

func (s *Scheduler) Start()

func (*Scheduler) Stop

func (s *Scheduler) Stop()

type SmsChannel

type SmsChannel struct {
}

func (SmsChannel) Send

func (c SmsChannel) Send(options data.Options, users []*store.User, vars data.Map) (err error)

type TaskFetcher

type TaskFetcher struct {
	// contains filtered or unexported fields
}

func NewTaskFetcher

func NewTaskFetcher(ts store.TaskStore, logger log.Logger) *TaskFetcher

func (*TaskFetcher) Find

func (f *TaskFetcher) Find(name string) (*store.Task, error)

func (*TaskFetcher) Start

func (f *TaskFetcher) Start(c chan<- *TaskHeap)

func (*TaskFetcher) Stop

func (f *TaskFetcher) Stop()

type TaskHeap

type TaskHeap struct {
	// contains filtered or unexported fields
}

A TaskHeap implements minimum heap and holds tasks.

func NewTaskHeap

func NewTaskHeap(tasks []*store.Task) *TaskHeap

func (*TaskHeap) Count

func (h *TaskHeap) Count() int

func (*TaskHeap) Peek

func (h *TaskHeap) Peek() *TaskItem

func (*TaskHeap) Pop

func (h *TaskHeap) Pop() *TaskItem

func (*TaskHeap) Push

func (h *TaskHeap) Push(item *TaskItem)

func (*TaskHeap) Update

func (h *TaskHeap) Update(i int)

type TaskItem

type TaskItem struct {
	// contains filtered or unexported fields
}

An TaskItem is something we manage in a priority queue.

func NewItem

func NewItem(task *store.Task) (*TaskItem, error)

type Timer

type Timer struct {
	*time.Timer
}

func (*Timer) Reset

func (t *Timer) Reset(d time.Duration)

func (*Timer) Stop

func (t *Timer) Stop()

type WeComChannel

type WeComChannel struct {
}

func (WeComChannel) Send

func (c WeComChannel) Send(options data.Options, users []*store.User, vars data.Map) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL