cron

package
v0.0.0-...-d989b54 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 15, 2020 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

This library implements a cron spec parser and runner. See the README for more details.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Cron

type Cron struct {
	// contains filtered or unexported fields
}

Cron keeps track of any number of entries, invoking the associated func as specified by the schedule. It may be started, stopped, and the entries may be inspected while running.

func New

func New() *Cron

New returns a new Cron job runner.

func (*Cron) AddFunc

func (c *Cron) AddFunc(spec string, cmd func())

AddFunc adds a func to the Cron to be run on the given schedule.

func (*Cron) AddJob

func (c *Cron) AddJob(spec string, cmd Job)

AddFunc adds a Job to the Cron to be run on the given schedule.

func (*Cron) Entries

func (c *Cron) Entries() []*Entry

Entries returns a snapshot of the cron entries.

func (*Cron) Start

func (c *Cron) Start()

Start the cron scheduler in its own go-routine.

func (*Cron) Stop

func (c *Cron) Stop()

Stop the cron scheduler.

type Entry

type Entry struct {
	// The schedule on which this job should be run.
	*Schedule

	// The next time the job will run. This is the zero time if Cron has not been
	// started or this entry's schedule is unsatisfiable
	Next time.Time

	// The last time this job was run. This is the zero time if the job has never
	// been run.
	Prev time.Time

	// The Job to run.
	Job Job
}

Entry consists of a schedule and the func to execute on that schedule.

type Job

type Job interface {
	Run()
}

Job is an interface for submitted cron jobs.

type Schedule

type Schedule struct {
	Second, Minute, Hour, Dom, Month, Dow uint64
}

Schedule specifies a duty cycle (to the second granularity). Schedules are computed initially and stored as bit sets.

func Parse

func Parse(spec string) *Schedule

Parse returns a new crontab schedule representing the given spec. It panics with a descriptive error if the spec is not valid.

func (*Schedule) Next

func (s *Schedule) Next(t time.Time) time.Time

Next returns the next time this schedule is activated, greater than the given time. If no time can be found to satisfy the schedule, return the zero time.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL