generalize trigger kinds

This commit is contained in:
Christian Schwarz
2023-12-22 14:40:53 +00:00
parent b0caa2d151
commit c8afaf83ab
13 changed files with 168 additions and 57 deletions
+33
View File
@@ -0,0 +1,33 @@
package trigger
import (
"context"
"time"
)
type Periodic struct {
interval time.Duration
}
var _ Trigger = &Periodic{}
func NewPeriodic(interval time.Duration) *Periodic {
return &Periodic{
interval: interval,
}
}
func (p *Periodic) ID() string { return "periodic" }
func (p *Periodic) run(ctx context.Context, signal chan<- struct{}) {
t := time.NewTicker(p.interval)
defer t.Stop()
for {
select {
case <-t.C:
signal <- struct{}{}
case <-ctx.Done():
return
}
}
}