Add a Schedule

Schedule a function

To have a function invoked according to a cron specification, simply call the AddFunc() function of this Service.

For example, to invoke a function in your own service every hour on the half hour you can implement:

 1func (p *Example) Start() error {
 2    id, err := p.cron.AddFunc( "0 30 * * * *", p.tick )
 3    if err != nil {
 4        return err
 5    }
 6    p.tickId = id
 7
 8    return nil
 9}
10
11func (p *Example) Stop() {
12    p.cron.Remove(p.tickId)
13}
14
15// tick is called every hour on the half hour
16func (p *Example) tick() {
17    // Do something
18}

Schedule a Job

As an alternative, you can add a type instead of a function as long as that type implements the Job interface.

1type Job interface {
2    Run()
3}

To do this use the AddJob() function instead of AddFunc.

 1type MyJob struct {
 2}
 3
 4// Run will be called every hour on the half hour
 5func (j *MyJob) Run() {
 6    // Do something
 7}
 8
 9func (p *Example) Start() error {
10    id, err := p.cron.AddJob( "0 30 * * * *", &MyJob{} )
11    if err != nil {
12        return err
13    }
14    p.tickId = id
15
16    return nil
17}
18
19func (p *Example) Stop() {
20    p.cron.Remove(p.tickId)
21}
Last modified October 15, 2021: Switch print page breaks to css (d15ab85)