Simple time wheel in golang.
go version >= 1.18
import "github.com/hyperjiang/timewheel"
type MyHandler struct {
}
func (h *MyHandler) Handle(param any) {
// do your own business
}
tw := timewheel.New(
timewheel.WithHandler(new(MyHandler)),
timewheel.WithLogger(timewheel.Printf),
timewheel.WithSlotNum(10),
timewheel.WithTickDuration(time.Millisecond*100),
)
tw.Start()
tw.AddTask(time.Second, "1s")
tw.AddTask(time.Second*10, "10s")