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()
}
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()
}
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()
}
func (*Task) ExecutesIn ¶
ExecutesIn returns the duration until the next execution.
func (*Task) NextExecutionTime ¶
NextExecutionTime returns the time when the next execution will happen.