Documentation ¶
Index ¶
- type ConstantDelaySchedule
- type Job
- type Jobhandle
- type ParseOption
- type Parser
- type Schedule
- type SimpleJobHandle
- type SpecSchedule
- type TaskData
- type TimeWheel
- func (tw *TimeWheel) AddCycleSimpleTask(interval time.Duration, times int, key interface{}, job Job) error
- func (tw *TimeWheel) AddForeverTaskByHours(t int64, key interface{}, data TaskData, job Job) error
- func (tw *TimeWheel) AddForeverTaskByMinutes(t int64, key interface{}, data TaskData, job Job) error
- func (tw *TimeWheel) AddForeverTaskBySeconds(t int64, key interface{}, data TaskData, job Job) error
- func (tw *TimeWheel) AddJobByCron(cron string, job Jobhandle) error
- func (tw *TimeWheel) AddOneTimeSimpleTask(t time.Time, job Job) error
- func (tw *TimeWheel) AddOneTimeTask(t time.Time, data TaskData, job Job) error
- func (tw *TimeWheel) AddTask(interval time.Duration, times int, key interface{}, data TaskData, job Job) error
- func (tw *TimeWheel) AddTaskByCron(cron string, key interface{}, data TaskData, job Job) error
- func (tw *TimeWheel) RemoveTask(key interface{}) error
- func (tw *TimeWheel) Start()
- func (tw *TimeWheel) Stop()
- func (tw *TimeWheel) UpdateTask(key interface{}, interval time.Duration, taskData TaskData) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConstantDelaySchedule ¶
ConstantDelaySchedule represents a simple recurring duty cycle, e.g. "Every 5 minutes". It does not support jobs more frequent than once a second.
func Every ¶
func Every(duration time.Duration) ConstantDelaySchedule
Every returns a crontab Schedule that activates once every duration. Delays of less than a second are not supported (will round up to 1 second). Any fields less than a Second are truncated.
type ParseOption ¶
type ParseOption int
cron表达式解析
const ( Second ParseOption = 1 << iota // Seconds field, default 0 SecondOptional // Optional seconds field, default 0 Minute // Minutes field, default 0 Hour // Hours field, default 0 Dom // Day of month field, default * Month // Month field, default * Dow // Day of week field, default * DowOptional // Optional day of week field, default * Descriptor // Allow descriptors such as @monthly, @weekly, etc. )
type Parser ¶
type Parser struct {
// contains filtered or unexported fields
}
A custom Parser that can be configured.
func NewParser ¶
func NewParser(options ParseOption) Parser
NewParser creates a Parser with custom options.
It panics if more than one Optional is given, since it would be impossible to correctly infer which optional is provided or missing in general.
Examples
// Standard parser without descriptors specParser := NewParser(Minute | Hour | Dom | Month | Dow) sched, err := specParser.Parse("0 0 15 */3 *") // Same as above, just excludes time fields specParser := NewParser(Dom | Month | Dow) sched, err := specParser.Parse("15 */3 *") // Same as above, just makes Dow optional specParser := NewParser(Dom | Month | DowOptional) sched, err := specParser.Parse("15 */3")
type Schedule ¶
type Schedule interface { // Next returns the next activation time, later than the given time. // Next is invoked initially, and then each time the job is run. Next(time.Time) time.Time }
func ParseStandard ¶
ParseStandard returns a new crontab schedule representing the given standardSpec (https://en.wikipedia.org/wiki/Cron). It requires 5 entries representing: minute, hour, day of month, month and day of week, in that order. It returns a descriptive error if the spec is not valid.
It accepts
- Standard crontab specs, e.g. "* * * * ?"
- Descriptors, e.g. "@midnight", "@every 1h30m"
type SimpleJobHandle ¶
func (*SimpleJobHandle) Execute ¶
func (this *SimpleJobHandle) Execute()
func (*SimpleJobHandle) TaskName ¶
func (this *SimpleJobHandle) TaskName() string
type SpecSchedule ¶
type TimeWheel ¶
type TimeWheel struct {
// contains filtered or unexported fields
}
time wheel struct
func NewMinuteWheel ¶
func NewSecondWheel ¶
func (*TimeWheel) AddCycleSimpleTask ¶
func (*TimeWheel) AddForeverTaskByHours ¶
func (*TimeWheel) AddForeverTaskByMinutes ¶
func (*TimeWheel) AddForeverTaskBySeconds ¶
func (*TimeWheel) AddJobByCron ¶
func (*TimeWheel) AddOneTimeSimpleTask ¶
func (*TimeWheel) AddOneTimeTask ¶
func (*TimeWheel) AddTask ¶
func (tw *TimeWheel) AddTask(interval time.Duration, times int, key interface{}, data TaskData, job Job) error
AddTask add new task to the time wheel
func (*TimeWheel) AddTaskByCron ¶
func (*TimeWheel) RemoveTask ¶
RemoveTask remove the task from time wheel