Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrLockFailed = errors.New("lock failed")
Functions ¶
func Provider ¶
func Provider(creator func(cc infra.Resolver, creator JobCreator), options ...Option) infra.DaemonProvider
Types ¶
type Job ¶
type Job struct {
ID cron.EntryID
Name string
Plan string
Paused bool
// contains filtered or unexported fields
}
Job is a job object
type JobCreator ¶
type JobCreator interface {
// Add a cron job
Add(name string, plan string, handler interface{}) error
// AddAndRunOnServerReady add a cron job, and trigger it immediately when server is ready
AddAndRunOnServerReady(name string, plan string, handler interface{}) error
// MustAdd add a cron job
MustAdd(name string, plan string, handler interface{})
// MustAddAndRunOnServerReady add a cron job, and trigger it immediately when server is ready
MustAddAndRunOnServerReady(name string, plan string, handler interface{})
}
JobCreator is a creator for cron job
type JobHandler ¶
JobHandler 定时任务 Job 处理接口,所有的任务都要实现该接口
type LockManager ¶
type LockManagerBuilder ¶
type LockManagerBuilder func(name string) LockManager
type Option ¶
Option 定时任务配置型
func SetLockManagerOption ¶
func SetLockManagerOption(lockManager func(resolver infra.Resolver) LockManagerBuilder) Option
SetLockManagerOption 设置分布式锁管理器实现
type OverlapJobHandler ¶
type OverlapJobHandler struct {
// contains filtered or unexported fields
}
OverlapJobHandler 是一个 Job Main,可以避免当前任务执行时间过长时,同一任务同时存在多个运行实例的问题 当任务还在执行时,下一次调度将会被取消
func WithoutOverlap ¶
func WithoutOverlap(handler interface{}) *OverlapJobHandler
WithoutOverlap 可以避免当前任务执行时间过长时,同一任务同时存在多个运行实例的问题 当任务还在执行时,下一次调度将会被取消
func (*OverlapJobHandler) Handle ¶
func (handler *OverlapJobHandler) Handle(resolver infra.Resolver) error
func (*OverlapJobHandler) SkipCallback ¶
func (handler *OverlapJobHandler) SkipCallback(fn func()) *OverlapJobHandler
type Scheduler ¶
type Scheduler interface {
JobCreator
// Remove remove a cron job
Remove(name string) error
// Pause set job status to paused
Pause(name string) error
// Continue set job status to continue
Continue(name string) error
// Info get job info
Info(name string) (Job, error)
// Start cron manager
Start()
// Stop cron job manager
Stop()
LockManagerBuilder(builder LockManagerBuilder)
}
Scheduler is a manager object to manage cron jobs
func NewManager ¶
NewManager create a new Scheduler
Click to show internal directories.
Click to hide internal directories.