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 ¶ added in v1.0.17
func SetPanicCaller(p panicType)
Types ¶
type ConstantDelaySchedule ¶ added in v1.0.17
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 ¶ added in v1.0.17
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 ¶ added in v1.0.17
CronSchduler
func (*CronSchduler) DynamicRegister ¶ added in v1.0.17
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 ¶ added in v1.0.17
func (c *CronSchduler) GetServiceCron(srv string) (*JobModel, error)
func (*CronSchduler) Register ¶ added in v1.0.17
func (c *CronSchduler) Register(srv string, model *JobModel) error
Register - only register srv's job model, don't start auto.
func (*CronSchduler) Start ¶ added in v1.0.17
func (c *CronSchduler) Start()
func (*CronSchduler) StopService ¶ added in v1.0.17
func (c *CronSchduler) StopService(srv string)
StopService - stop job by serviceName
func (*CronSchduler) StopServicePrefix ¶ added in v1.0.17
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 ¶ added in v1.0.17
func (c *CronSchduler) UnRegister(srv string) error
UnRegister - stop and delete srv
func (*CronSchduler) UpdateJobModel ¶ added in v1.0.17
func (c *CronSchduler) UpdateJobModel(srv string, model *JobModel) error
UpdateJobModel - stop old job, update srv's job model
func (*CronSchduler) Wait ¶ added in v1.0.17
func (c *CronSchduler) Wait()
Wait - if all jobs is exited, return.
func (*CronSchduler) WaitStop ¶ added in v1.0.17
func (c *CronSchduler) WaitStop()
WaitStop - when stop cronlib controller, return.
type JobModel ¶ added in v1.0.17
func NewJobModel ¶ added in v1.0.17
NewJobModel - defualt block sync callfunc
func (*JobModel) SetAsyncMode ¶ added in v1.0.17
func (*JobModel) SetTryCatch ¶ added in v1.0.17
type JobOption ¶ added in v1.0.17
func TryCatchMode ¶ added in v1.0.17
func TryCatchMode() JobOption
type ParseOption ¶ added in v1.0.17
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 ¶ added in v1.0.17
type Parser struct {
// contains filtered or unexported fields
}
A custom Parser that can be configured.
func NewParser ¶ added in v1.0.17
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 ¶ added in v1.0.17
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 ¶ added in v1.0.17
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 ¶ added in v1.0.17
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 ¶ added in v1.0.17
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"