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 ¶ added in v1.1.3
type LockManagerBuilder ¶ added in v1.1.3
type LockManagerBuilder func(name string) LockManager
type Option ¶
Option 定时任务配置型
func SetLockManagerOption ¶ added in v1.1.3
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.