/go-schedule

Task scheduler library for Google Go.

Primary LanguageGoMIT LicenseMIT

go-schedule - Task scheduler library

wercker status Coverage Status GoDoc

go-schedule is a task scheduling library for Go.

For package documentation, refer to the GoDoc badge above.

Installation

go get gopkg.in/zhevron/go-schedule.v0/schedule

Usage

package main

import (
  "fmt"

  "gopkg.in/zhevron/go-schedule.v0/schedule"
)

func MyJob(scheduler *schedule.Scheduler) {
  fmt.Println("Running MyJob")
  scheduler.Stop()
}

func main() {
  scheduler := schedule.NewScheduler()

  job := schedule.NewJob("MyJob", MyJob, scheduler);
  job.Schedule().Every("15m").From(time.Now())

  scheduler.Add(job)
  scheduler.Start()

  for scheduler.Running() {
    switch {
    case res := <-scheduler.Results():
      fmt.Printf("job %#s returned result: %v\n", res.Name, res.Results)

    case err := <-scheduler.Errors():
      fmt.Printf("job %#s encountered an error: %s\n", err.Name, err.Error)
    }
  }
}

License

go-schedule is licensed under the MIT license.