Documentation ¶
Index ¶
- Constants
- Variables
- func SetLogger(logger loggerType)
- func SetPanicCaller(p panicType)
- type ConstantDelaySchedule
- type CronSchduler
- func (c *CronSchduler) DynamicRegister(srv string, model *JobModel) error
- func (c *CronSchduler) GetServiceCron(srv string) (*JobModel, error)
- func (c *CronSchduler) Register(srv string, model *JobModel) error
- func (c *CronSchduler) Start()
- func (c *CronSchduler) Stop()
- func (c *CronSchduler) StopService(srv string)
- func (c *CronSchduler) StopServicePrefix(regex string)
- func (c *CronSchduler) UnRegister(srv string) error
- func (c *CronSchduler) UpdateJobModel(srv string, model *JobModel) error
- func (c *CronSchduler) Wait()
- func (c *CronSchduler) WaitStop()
- type JobModel
- type JobOption
- type ParseOption
- type Parser
- type SpecSchedule
- type TimeRunner
Constants ¶
const ( OnMode = true OffMode = false )
Variables ¶
Functions ¶
func SetPanicCaller ¶
func SetPanicCaller(p panicType)
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 CronSchduler ¶
CronSchduler
func (*CronSchduler) DynamicRegister ¶
func (c *CronSchduler) DynamicRegister(srv string, model *JobModel) error
DynamicRegister - after cronlib already run, dynamic add a job, the job autostart by cronlib.
func (*CronSchduler) GetServiceCron ¶
func (c *CronSchduler) GetServiceCron(srv string) (*JobModel, error)
func (*CronSchduler) Register ¶
func (c *CronSchduler) Register(srv string, model *JobModel) error
Register - only register srv's job model, don't start auto.
func (*CronSchduler) Start ¶
func (c *CronSchduler) Start()
func (*CronSchduler) StopService ¶
func (c *CronSchduler) StopService(srv string)
StopService - stop job by serviceName
func (*CronSchduler) StopServicePrefix ¶
func (c *CronSchduler) StopServicePrefix(regex string)
StopServicePrefix - stop job by srv regex prefix. if regex = "risk.scan", stop risk.scan.total, risk.scan.user at the same time
func (*CronSchduler) UnRegister ¶
func (c *CronSchduler) UnRegister(srv string) error
UnRegister - stop and delete srv
func (*CronSchduler) UpdateJobModel ¶
func (c *CronSchduler) UpdateJobModel(srv string, model *JobModel) error
UpdateJobModel - stop old job, update srv's job model
func (*CronSchduler) WaitStop ¶
func (c *CronSchduler) WaitStop()
WaitStop - when stop cronlib controller, return.
type JobModel ¶
func NewJobModel ¶
NewJobModel - defualt block sync callfunc
func (*JobModel) SetAsyncMode ¶
func (*JobModel) SetTryCatch ¶
type JobOption ¶
func TryCatchMode ¶
func TryCatchMode() JobOption
type ParseOption ¶
type ParseOption int
Configuration options for creating a parser. Most options specify which fields should be included, while others enable features. If a field is not included the parser will assume a default value. These options do not change the order fields are parse in.
const ( Second ParseOption = 1 << iota // 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
Creates a custom Parser with custom options.
// 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 subsParser := NewParser(Dom | Month | Dow) sched, err := specParser.Parse("15 */3 *") // Same as above, just makes Dow optional subsParser := NewParser(Dom | Month | DowOptional) sched, err := specParser.Parse("15 */3")
type SpecSchedule ¶
type SpecSchedule struct {
Second, Minute, Hour, Dom, Month, Dow uint64
}
SpecSchedule specifies a duty cycle (to the second granularity), based on a traditional crontab specification. It is computed initially and stored as bit sets.
type TimeRunner ¶
type TimeRunner interface { // Return 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 }
The Schedule describes a job's duty cycle.
func Parse ¶
func Parse(spec string) (TimeRunner, error)
Parse returns a new crontab schedule representing the given spec. It returns a descriptive error if the spec is not valid.
It accepts
- Full crontab specs, e.g. "* * * * * ?"
- Descriptors, e.g. "@midnight", "@every 1h30m"
func ParseStandard ¶
func ParseStandard(standardSpec string) (TimeRunner, error)
ParseStandard returns a new crontab schedule representing the given standardSpec (https://en.wikipedia.org/wiki/Cron). It differs from Parse requiring to always pass 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"