Versions in this module Expand all Collapse all v1 v1.36.1 Nov 16, 2023 Changes in this version + const RescheduleMode + const WaitMode + var ErrAtTimeNotSupported = errors.New("gocron: the At() method is not supported for this time unit") + var ErrCronParseFailure = errors.New("gocron: cron expression failed to be parsed") + var ErrDoWithJobDetails = errors.New(...) + var ErrFailedToConnectToRedis = errors.New("gocron: failed to connect to redis") + var ErrFailedToObtainLock = errors.New("gocron: failed to obtain lock") + var ErrFailedToReleaseLock = errors.New("gocron: failed to release lock") + var ErrInvalidDayOfMonthEntry = errors.New(...) + var ErrInvalidDaysOfMonthDuplicateValue = errors.New(...) + var ErrInvalidFunctionParameters = errors.New("gocron: length of function parameters must match job function parameters") + var ErrInvalidInterval = errors.New("gocron: .Every() interval must be greater than 0") + var ErrInvalidIntervalType = errors.New("gocron: .Every() interval must be int, time.Duration, or string") + var ErrInvalidIntervalUnitsSelection = errors.New(...) + var ErrInvalidMonthLastDayEntry = errors.New("gocron: only a single negative integer is permitted for MonthLastDay") + var ErrJobNotFound = errors.New("gocron: no job found") + var ErrJobNotFoundWithTag = errors.New("gocron: no jobs found with given tag") + var ErrNotAFunction = errors.New("gocron: only functions can be scheduled into the job queue") + var ErrNotScheduledWeekday = errors.New("gocron: job not scheduled weekly on a weekday") + var ErrTagsUnique = func(tag string) error + var ErrUnsupportedTimeFormat = errors.New("gocron: the given time format is not supported") + var ErrUpdateCalledWithoutJob = errors.New(...) + var ErrWeekdayNotSupported = errors.New("gocron: weekday is not supported for time unit") + var ErrWrongParams = errors.New("gocron: wrong list of params") + func SetPanicHandler(handler PanicHandlerFunc) + type Elector interface + IsLeader func(ctx context.Context) error + type EventListener func(j *Job) + func AfterJobRuns(eventListenerFunc func(jobName string)) EventListener + func BeforeJobRuns(eventListenerFunc func(jobName string)) EventListener + func WhenJobReturnsError(eventListenerFunc func(jobName string, err error)) EventListener + func WhenJobReturnsNoError(eventListenerFunc func(jobName string)) EventListener + type Job struct + func (j *Job) Context() context.Context + func (j *Job) Error() error + func (j *Job) FinishedRunCount() int + func (j *Job) GetName() string + func (j *Job) IsRunning() bool + func (j *Job) LastRun() time.Time + func (j *Job) LimitRunsTo(n int) + func (j *Job) Name(name string) + func (j *Job) NextRun() time.Time + func (j *Job) PreviousRun() time.Time + func (j *Job) RegisterEventListeners(eventListeners ...EventListener) + func (j *Job) RunCount() int + func (j *Job) ScheduledAtTime() string + func (j *Job) ScheduledAtTimes() []string + func (j *Job) ScheduledTime() time.Time + func (j *Job) SetEventListeners(onBeforeJobExecution interface{}, onAfterJobExecution interface{}) + func (j *Job) SingletonMode() + func (j *Job) Tag(tags ...string) + func (j *Job) Tags() []string + func (j *Job) Untag(t string) + func (j *Job) Weekday() (time.Weekday, error) + func (j *Job) Weekdays() []time.Weekday + type Lock interface + Unlock func(ctx context.Context) error + type Locker interface + Lock func(ctx context.Context, key string) (Lock, error) + type PanicHandlerFunc func(jobName string, recoverData interface{}) + type Scheduler struct + func NewScheduler(loc *time.Location) *Scheduler + func (s *Scheduler) At(i interface{}) *Scheduler + func (s *Scheduler) ChangeLocation(newLocation *time.Location) + func (s *Scheduler) Clear() + func (s *Scheduler) Cron(cronExpression string) *Scheduler + func (s *Scheduler) CronWithSeconds(cronExpression string) *Scheduler + func (s *Scheduler) CustomTime(customTimeWrapper TimeWrapper) + func (s *Scheduler) CustomTimer(customTimer func(d time.Duration, f func()) *time.Timer) + func (s *Scheduler) Day() *Scheduler + func (s *Scheduler) Days() *Scheduler + func (s *Scheduler) Do(jobFun interface{}, params ...interface{}) (*Job, error) + func (s *Scheduler) DoWithJobDetails(jobFun interface{}, params ...interface{}) (*Job, error) + func (s *Scheduler) Every(interval interface{}) *Scheduler + func (s *Scheduler) EveryRandom(lower, upper int) *Scheduler + func (s *Scheduler) FindJobsByTag(tags ...string) ([]*Job, error) + func (s *Scheduler) Friday() *Scheduler + func (s *Scheduler) GetAllTags() []string + func (s *Scheduler) Hour() *Scheduler + func (s *Scheduler) Hours() *Scheduler + func (s *Scheduler) IsRunning() bool + func (s *Scheduler) Job(j *Job) *Scheduler + func (s *Scheduler) Jobs() []*Job + func (s *Scheduler) JobsMap() map[uuid.UUID]*Job + func (s *Scheduler) Len() int + func (s *Scheduler) LimitRunsTo(i int) *Scheduler + func (s *Scheduler) Location() *time.Location + func (s *Scheduler) Midday() *Scheduler + func (s *Scheduler) Millisecond() *Scheduler + func (s *Scheduler) Milliseconds() *Scheduler + func (s *Scheduler) Minute() *Scheduler + func (s *Scheduler) Minutes() *Scheduler + func (s *Scheduler) Monday() *Scheduler + func (s *Scheduler) Month(daysOfMonth ...int) *Scheduler + func (s *Scheduler) MonthFirstWeekday(weekday time.Weekday) *Scheduler + func (s *Scheduler) MonthLastDay(dayCountBeforeLastDayOfMonth ...int) *Scheduler + func (s *Scheduler) Months(daysOfTheMonth ...int) *Scheduler + func (s *Scheduler) Name(name string) *Scheduler + func (s *Scheduler) NextRun() (*Job, time.Time) + func (s *Scheduler) PauseJobExecution(shouldPause bool) + func (s *Scheduler) RegisterEventListeners(eventListeners ...EventListener) + func (s *Scheduler) Remove(job interface{}) + func (s *Scheduler) RemoveByID(job *Job) error + func (s *Scheduler) RemoveByReference(job *Job) + func (s *Scheduler) RemoveByTag(tag string) error + func (s *Scheduler) RemoveByTags(tags ...string) error + func (s *Scheduler) RemoveByTagsAny(tags ...string) error + func (s *Scheduler) Run(job *Job) + func (s *Scheduler) RunAll() + func (s *Scheduler) RunAllWithDelay(d time.Duration) + func (s *Scheduler) RunByTag(tag string) error + func (s *Scheduler) RunByTagWithDelay(tag string, d time.Duration) error + func (s *Scheduler) Saturday() *Scheduler + func (s *Scheduler) Second() *Scheduler + func (s *Scheduler) Seconds() *Scheduler + func (s *Scheduler) SetMaxConcurrentJobs(n int, mode limitMode) + func (s *Scheduler) SingletonMode() *Scheduler + func (s *Scheduler) SingletonModeAll() + func (s *Scheduler) StartAsync() + func (s *Scheduler) StartAt(t time.Time) *Scheduler + func (s *Scheduler) StartBlocking() + func (s *Scheduler) StartImmediately() *Scheduler + func (s *Scheduler) Stop() + func (s *Scheduler) StopBlockingChan() + func (s *Scheduler) Sunday() *Scheduler + func (s *Scheduler) Tag(t ...string) *Scheduler + func (s *Scheduler) TagsUnique() + func (s *Scheduler) TaskPresent(j interface{}) bool + func (s *Scheduler) Thursday() *Scheduler + func (s *Scheduler) Tuesday() *Scheduler + func (s *Scheduler) Update() (*Job, error) + func (s *Scheduler) WaitForSchedule() *Scheduler + func (s *Scheduler) WaitForScheduleAll() + func (s *Scheduler) Wednesday() *Scheduler + func (s *Scheduler) Week() *Scheduler + func (s *Scheduler) Weekday(weekDay time.Weekday) *Scheduler + func (s *Scheduler) Weeks() *Scheduler + func (s *Scheduler) WithDistributedElector(e Elector) + func (s *Scheduler) WithDistributedLocker(l Locker) + type TimeWrapper interface + Now func(*time.Location) time.Time + Sleep func(time.Duration) + Unix func(int64, int64) time.Time