gcron

package
v2.0.0-rc3 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2022 License: MIT Imports: 16 Imported by: 20

Documentation

Overview

Package gcron implements a cron pattern parser and job runner.

Example (CronAddSingleton)
gcron.AddSingleton(ctx, "* * * * * *", func(ctx context.Context) {
	glog.Print(context.TODO(), "doing")
	time.Sleep(2 * time.Second)
})
select {}
Output:

Index

Examples

Constants

View Source
const (
	StatusReady   = gtimer.StatusReady
	StatusRunning = gtimer.StatusRunning
	StatusStopped = gtimer.StatusStopped
	StatusClosed  = gtimer.StatusClosed
)

Variables

This section is empty.

Functions

func DelayAdd

func DelayAdd(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAdd adds a timed task to default cron object after `delay` time.

func DelayAddOnce

func DelayAddOnce(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAddOnce adds a timed task after `delay` time to default cron object. This timed task can be run only once.

func DelayAddSingleton

func DelayAddSingleton(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAddSingleton adds a singleton timed task after `delay` time to default cron object.

func DelayAddTimes

func DelayAddTimes(ctx context.Context, delay time.Duration, pattern string, times int, job JobFunc, name ...string)

DelayAddTimes adds a timed task after `delay` time to default cron object. This timed task can be run specified times.

func GetLogger

func GetLogger() *glog.Logger

GetLogger returns the logger in the cron.

func Remove

func Remove(name string)

Remove deletes scheduled task which named `name`.

func SetLogger

func SetLogger(logger *glog.Logger)

SetLogger sets the logger for cron.

func Size

func Size() int

Size returns the size of the timed tasks of default cron.

func Start

func Start(name ...string)

Start starts running the specified timed task named `name`. If no`name` specified, it starts the entire cron.

func Stop

func Stop(name ...string)

Stop stops running the specified timed task named `name`. If no`name` specified, it stops the entire cron.

Types

type Cron

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

func New

func New() *Cron

New returns a new Cron object with default settings.

func (*Cron) Add

func (c *Cron) Add(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

Add adds a timed task. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func (*Cron) AddEntry

func (c *Cron) AddEntry(ctx context.Context, pattern string, job JobFunc, times int, isSingleton bool, name ...string) (*Entry, error)

AddEntry creates and returns a new Entry object.

func (*Cron) AddOnce

func (c *Cron) AddOnce(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

AddOnce adds a timed task which can be run only once. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func (*Cron) AddSingleton

func (c *Cron) AddSingleton(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

AddSingleton adds a singleton timed task. A singleton timed task is that can only be running one single instance at the same time. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func (*Cron) AddTimes

func (c *Cron) AddTimes(ctx context.Context, pattern string, times int, job JobFunc, name ...string) (*Entry, error)

AddTimes adds a timed task which can be run specified times. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func (*Cron) Close

func (c *Cron) Close()

Close stops and closes current cron.

func (*Cron) DelayAdd

func (c *Cron) DelayAdd(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAdd adds a timed task after `delay` time.

func (*Cron) DelayAddEntry

func (c *Cron) DelayAddEntry(ctx context.Context, delay time.Duration, pattern string, job JobFunc, times int, isSingleton bool, name ...string)

DelayAddEntry adds a timed task after `delay` time.

func (*Cron) DelayAddOnce

func (c *Cron) DelayAddOnce(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAddOnce adds a timed task after `delay` time. This timed task can be run only once.

func (*Cron) DelayAddSingleton

func (c *Cron) DelayAddSingleton(ctx context.Context, delay time.Duration, pattern string, job JobFunc, name ...string)

DelayAddSingleton adds a singleton timed task after `delay` time.

func (*Cron) DelayAddTimes

func (c *Cron) DelayAddTimes(ctx context.Context, delay time.Duration, pattern string, times int, job JobFunc, name ...string)

DelayAddTimes adds a timed task after `delay` time. This timed task can be run specified times.

func (*Cron) Entries

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

Entries return all timed tasks as slice(order by registered time asc).

func (*Cron) GetLogger

func (c *Cron) GetLogger() *glog.Logger

GetLogger returns the logger in the cron.

func (*Cron) Remove

func (c *Cron) Remove(name string)

Remove deletes scheduled task which named `name`.

func (*Cron) Search

func (c *Cron) Search(name string) *Entry

Search returns a scheduled task with the specified `name`. It returns nil if not found.

func (*Cron) SetLogger

func (c *Cron) SetLogger(logger *glog.Logger)

SetLogger sets the logger for cron.

func (*Cron) Size

func (c *Cron) Size() int

Size returns the size of the timed tasks.

func (*Cron) Start

func (c *Cron) Start(name ...string)

Start starts running the specified timed task named `name`. If no`name` specified, it starts the entire cron.

func (*Cron) Stop

func (c *Cron) Stop(name ...string)

Stop stops running the specified timed task named `name`. If no`name` specified, it stops the entire cron.

type Entry

type Entry struct {
	Name string    // Entry name.
	Job  JobFunc   `json:"-"` // Callback function.
	Time time.Time // Registered time.
	// contains filtered or unexported fields
}

Entry is timing task entry.

func Add

func Add(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

Add adds a timed task to default cron object. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func AddOnce

func AddOnce(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

AddOnce adds a timed task which can be run only once, to default cron object. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func AddSingleton

func AddSingleton(ctx context.Context, pattern string, job JobFunc, name ...string) (*Entry, error)

AddSingleton adds a singleton timed task, to default cron object. A singleton timed task is that can only be running one single instance at the same time. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func AddTimes

func AddTimes(ctx context.Context, pattern string, times int, job JobFunc, name ...string) (*Entry, error)

AddTimes adds a timed task which can be run specified times, to default cron object. A unique `name` can be bound with the timed task. It returns and error if the `name` is already used.

func Entries

func Entries() []*Entry

Entries return all timed tasks as slice.

func Search(name string) *Entry

Search returns a scheduled task with the specified `name`. It returns nil if no found.

func (*Entry) Close

func (entry *Entry) Close()

Close stops and removes the entry from cron.

func (*Entry) IsSingleton

func (entry *Entry) IsSingleton() bool

IsSingleton return whether this entry is a singleton timed task.

func (*Entry) SetSingleton

func (entry *Entry) SetSingleton(enabled bool)

SetSingleton sets the entry running in singleton mode.

func (*Entry) SetStatus

func (entry *Entry) SetStatus(status int) int

SetStatus sets the status of the entry.

func (*Entry) SetTimes

func (entry *Entry) SetTimes(times int)

SetTimes sets the times which the entry can run.

func (*Entry) Start

func (entry *Entry) Start()

Start starts running the entry.

func (*Entry) Status

func (entry *Entry) Status() int

Status returns the status of entry.

func (*Entry) Stop

func (entry *Entry) Stop()

Stop stops running the entry.

type JobFunc

type JobFunc = gtimer.JobFunc

Jump to

Keyboard shortcuts

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