File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ package beat
2+
3+ import (
4+ "context"
5+ "time"
6+
7+ "sigs.k8s.io/controller-runtime/pkg/event"
8+ )
9+
10+ // Beat put a generic event on a channel after a certain time (e.g.: every day).
11+ type Beat struct {
12+ C chan event.GenericEvent
13+ TickerDuration time.Duration
14+ }
15+
16+ // NewBeat instantiate a beat.
17+ func NewBeat (tickerDuration time.Duration ) * Beat {
18+ return & Beat {
19+ C : make (chan event.GenericEvent ),
20+ TickerDuration : tickerDuration ,
21+ }
22+ }
23+
24+ // Start watches for events on a channel after a certain time (e.g.: every day). It's designed to be run by a manager.
25+ func (b * Beat ) Start (ctx context.Context ) error {
26+ ticker := time .NewTicker (b .TickerDuration )
27+
28+ go func () {
29+ b .C <- event.GenericEvent {}
30+
31+ for {
32+ select {
33+ case <- ctx .Done ():
34+ return
35+
36+ case <- ticker .C :
37+ b .C <- event.GenericEvent {}
38+ }
39+ }
40+ }()
41+
42+ return nil
43+ }
You can’t perform that action at this time.
0 commit comments