scheduler

package module
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2025 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OpStart   = "start"
	OpStop    = "stop"
	OpAdd     = "add"
	OpCancel  = "cancel"
	OpUpdate  = "update"
	OpPause   = "pause"
	OpResume  = "resume"
	OpIgnore  = "ignore"
	OpExecute = "execute"
)
View Source
const (
	TaskNotFound byte
	TaskIsBusy
	PlanNotFound
	PlanStop
	TooManyJob
	MaxDelay
)
View Source
const (
	Idle int32 = iota
	Running
	Pause
	Waiting
	Cancel
	Stopped
)
View Source
const PlanManual = "manual"

Variables

View Source
var (
	ExecuteParamNotFoundErr = errors.New("job execute parameter cron or interval is not specified")
	ExecuteParamConflictErr = errors.New("can not specify both cron and interval")
)
View Source
var (
	TaskNotFoundErr       = errors.New("task not found")
	TaskCodeNotFoundErr   = errors.New("task for specified name not found")
	TaskExistErr          = errors.New("task already exist")
	PlanNotFoundErr       = errors.New("plan not found")
	PlanExistErr          = errors.New("plan already exist")
	PlanConfigNotFoundErr = errors.New("plan config not found")
)
View Source
var StoppedErr = errors.New("scheduler already stopped")

Functions

func AddPlan added in v0.0.2

func AddPlan(code string, cfg *PlanConfig) error

func CancelJob added in v0.0.2

func CancelJob(code, plan string, jobIds ...string) error

func CancelPlan added in v0.0.2

func CancelPlan(code, plan string) error

func CancelTask added in v0.0.2

func CancelTask(code string) context.Context

func ExecuteTask added in v0.0.2

func ExecuteTask(code string, base *types.Time, maxDelay *types.Duration) (string, error)

func ExistPlan added in v0.0.2

func ExistPlan(code, plan string) bool

func ExistTask added in v0.0.2

func ExistTask(code string) bool

func JobStatus added in v0.0.2

func JobStatus(code ...string) map[string]map[string]map[string]int32

func NewTaskWrapper added in v0.0.2

func NewTaskWrapper(task Task, maxDelay *types.Duration, maxWaitingJob int32, cancelFunc cancelFunc, shouldStop stopFunc, logger OpLogger) *taskWrapper

func PausePlan added in v0.0.2

func PausePlan(code, plan string) error

func PauseTask added in v0.0.2

func PauseTask(code string)

func PlanStatus added in v0.0.2

func PlanStatus(code ...string) map[string]map[string]int32

func RegisterTask

func RegisterTask(task Task, cfg *TaskConfig) error

func ResumePlan added in v0.0.2

func ResumePlan(code, plan string) error

func ResumeTask added in v0.0.2

func ResumeTask(code string)

func Start

func Start()

func Stop

func Stop() context.Context

func TaskJobStatus added in v0.0.2

func TaskJobStatus(code string, plans ...string) map[string]map[string]int32

func TaskPlanJobStatus added in v0.0.2

func TaskPlanJobStatus(code, plan string, jobIds ...string) map[string]int32

func TaskPlanStatus added in v0.0.2

func TaskPlanStatus(code string, plan ...string) map[string]int32

func TaskStatus

func TaskStatus(codes ...string) map[string]int32

func UpdateTask added in v0.0.2

func UpdateTask(task Task, params map[string]any) error

func WithOpLogger added in v0.0.2

func WithOpLogger(l OpLogger)

Types

type OpLogger added in v0.0.2

type OpLogger func(op *Operate)

type Operate added in v0.0.2

type Operate struct {
	Task      string      `json:"task,omitempty"`
	Plan      string      `json:"plan,omitempty"`
	Job       string      `json:"job,omitempty"`
	Op        string      `json:"op,omitempty"`
	PlanTime  *types.Time `json:"planTime,omitempty"`
	StartTime *types.Time `json:"startTime,omitempty"`
	EndTime   *types.Time `json:"endTime,omitempty"`
	Code      byte        `json:"code,omitempty"`
}

func (*Operate) String added in v0.0.2

func (op *Operate) String() string

type Option added in v0.0.2

type Option func(op *Operate)

type PlanConfig added in v0.0.2

type PlanConfig struct {
	Cron     string          `json:"cron,omitempty"`
	Interval *types.Duration `json:"interval,omitempty"`
	StopAt   *types.Time     `json:"stopAt,omitempty"`
	// contains filtered or unexported fields
}

func (*PlanConfig) Check added in v0.0.2

func (cfg *PlanConfig) Check() (err error)

func (*PlanConfig) Key added in v0.0.2

func (cfg *PlanConfig) Key() string

type Scheduler

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

func (*Scheduler) AddPlan added in v0.0.2

func (s *Scheduler) AddPlan(code string, cfg *PlanConfig) (err error)

func (*Scheduler) CancelJob added in v0.0.2

func (s *Scheduler) CancelJob(code, key string, jobIds ...string) (err error)

func (*Scheduler) CancelPlan added in v0.0.2

func (s *Scheduler) CancelPlan(code, key string) (err error)

func (*Scheduler) CancelTask added in v0.0.2

func (s *Scheduler) CancelTask(code string) context.Context

func (*Scheduler) ExecuteTask added in v0.0.2

func (s *Scheduler) ExecuteTask(code string, baseTime *types.Time, maxDelay *types.Duration) (jobId string, err error)

func (*Scheduler) ExistPlan added in v0.0.2

func (s *Scheduler) ExistPlan(code, key string) bool

func (*Scheduler) ExistTask added in v0.0.2

func (s *Scheduler) ExistTask(code string) (ok bool)

func (*Scheduler) JobStatus added in v0.0.2

func (s *Scheduler) JobStatus(codes ...string) map[string]map[string]map[string]int32

func (*Scheduler) PausePlan added in v0.0.2

func (s *Scheduler) PausePlan(code, key string) (err error)

func (*Scheduler) PauseTask added in v0.0.2

func (s *Scheduler) PauseTask(code string)

func (*Scheduler) PlanStatus added in v0.0.2

func (s *Scheduler) PlanStatus(codes ...string) map[string]map[string]int32

func (*Scheduler) RegisterTask

func (s *Scheduler) RegisterTask(task Task, cfg *TaskConfig) (err error)

func (*Scheduler) ResumePlan added in v0.0.2

func (s *Scheduler) ResumePlan(code, key string) (err error)

func (*Scheduler) ResumeTask added in v0.0.2

func (s *Scheduler) ResumeTask(code string)

func (*Scheduler) Start added in v0.0.2

func (s *Scheduler) Start()

func (*Scheduler) Stop added in v0.0.2

func (s *Scheduler) Stop() context.Context

func (*Scheduler) TaskJobStatus added in v0.0.2

func (s *Scheduler) TaskJobStatus(code string, plans ...string) map[string]map[string]int32

func (*Scheduler) TaskPlanJobStatus added in v0.0.2

func (s *Scheduler) TaskPlanJobStatus(code, plan string, jobIds ...string) map[string]int32

func (*Scheduler) TaskPlanStatus added in v0.0.2

func (s *Scheduler) TaskPlanStatus(code string, plans ...string) map[string]int32

func (*Scheduler) TaskStatus added in v0.0.2

func (s *Scheduler) TaskStatus(codes ...string) map[string]int32

func (*Scheduler) UpdateTask added in v0.0.2

func (s *Scheduler) UpdateTask(task Task, params map[string]any) (err error)

func (*Scheduler) WithOpLogger added in v0.0.2

func (s *Scheduler) WithOpLogger(l OpLogger)

type Task

type Task interface {
	Code() string
	Run(base time.Time)
	Init(map[string]any) error
}

type TaskConfig

type TaskConfig struct {
	Code          string          `json:"code,omitempty"`
	Params        map[string]any  `json:"params,omitempty"`
	MaxDelay      *types.Duration `json:"maxDelay,omitempty"`
	MaxWaitingJob int32           `json:"maxWaitingJob,omitempty"`
	Plans         []*PlanConfig   `json:"plans,omitempty"`
}

func (*TaskConfig) AddParam

func (cfg *TaskConfig) AddParam(key string, value any)

func (*TaskConfig) Check

func (cfg *TaskConfig) Check() (err error)

func (*TaskConfig) SetDefaults added in v0.0.2

func (cfg *TaskConfig) SetDefaults(defaults map[string]any)

Jump to

Keyboard shortcuts

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