github.com/go-srvc/mods/tickermod
go get github.com/go-srvc/mods/tickermod@v1.0.2
README
tickermod
tickermod runs a function on a fixed interval. The ticker stops when the function returns a non-nil error.
package main
import (
"log/slog"
"os"
"time"
"github.com/go-srvc/mods/logmod"
"github.com/go-srvc/mods/sigmod"
"github.com/go-srvc/mods/tickermod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
logmod.New(),
sigmod.New(os.Interrupt),
tickermod.New(
tickermod.WithInterval(5*time.Second),
tickermod.WithFunc(func() error {
slog.Info("tick")
return nil
}),
),
)
}
Overview
Package tickermod provides ticker functionality as a module.
Constants
const (
ErrMissingInterval = errStr("interval not set")
ErrMissingTickFunc = errStr("tick function not set")
)const ID = "tickermod"Types
type Opt
type Opt func(*Ticker) errortype Ticker
type Ticker struct {
// contains filtered or unexported fields
}func (*Ticker) ID
func (t *Ticker) ID() stringfunc (*Ticker) Init
func (t *Ticker) Init() errorfunc (*Ticker) Run
func (t *Ticker) Run() errorfunc (*Ticker) Stop
func (t *Ticker) Stop() errorExamples
ExampleNew
package main
import (
"errors"
"log/slog"
"time"
"github.com/go-srvc/mods/tickermod"
"github.com/go-srvc/srvc"
)
func main() {
srvc.RunAndExit(
tickermod.New(
tickermod.WithInterval(time.Second),
tickermod.WithFunc(func() error {
slog.Info("Hello from ticker")
return errors.New("ticker error")
}),
),
)
}