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}