Documentation ¶
Overview ¶
Package schedule provides a simple scheduler for Go.
It can run a function at a given time, in a given duration, or repeatedly at a given interval.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Task ¶
type Task struct {
// contains filtered or unexported fields
}
Task holds information about the running task and can be used to stop running tasks.
func After ¶
After executes the task after the given duration. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.
Example ¶
package main import ( "fmt" "time" "atomicgo.dev/schedule" ) func main() { task := schedule.After(5*time.Second, func() { fmt.Println("5 seconds are over!") }) fmt.Println("Some stuff happening...") task.Wait() }
Output:
func At ¶
At executes the task at the given time. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.
Example ¶
package main import ( "fmt" "time" "atomicgo.dev/schedule" ) func main() { task := schedule.At(time.Now().Add(5*time.Second), func() { fmt.Println("5 seconds are over!") }) fmt.Println("Some stuff happening...") task.Wait() }
Output:
func Every ¶
Every executes the task in the given interval, as long as the task function returns true. The function is non-blocking. If you want to wait for the task to be executed, use the Task.Wait method.
Example ¶
package main import ( "fmt" "time" "atomicgo.dev/schedule" ) func main() { task := schedule.Every(time.Second, func() bool { fmt.Println("1 second is over!") return true // return false to stop the task }) fmt.Println("Some stuff happening...") time.Sleep(10 * time.Second) task.Stop() }
Output:
func (*Task) ExecutesIn ¶
ExecutesIn returns the duration until the next execution.
func (*Task) NextExecutionTime ¶
NextExecutionTime returns the time when the next execution will happen.