Skip to content

Commit f0b2a68

Browse files
committed
Poll interval is configurable
1 parent 18e5991 commit f0b2a68

File tree

2 files changed

+8
-5
lines changed

2 files changed

+8
-5
lines changed

cmd/rp-indexer/main.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"os"
66
"os/signal"
77
"syscall"
8+
"time"
89

910
"github.com/evalphobia/logrus_sentry"
1011
_ "github.com/lib/pq"
@@ -59,7 +60,7 @@ func main() {
5960
log.WithField("indexer", idxr.Name()).WithError(err).Fatal("error during rebuilding")
6061
}
6162
} else {
62-
d := indexer.NewDaemon(cfg, db, idxrs)
63+
d := indexer.NewDaemon(cfg, db, idxrs, time.Duration(cfg.Poll)*time.Second)
6364
d.Start()
6465

6566
handleSignals(d)

daemon.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,20 @@ type Daemon struct {
1616
wg *sync.WaitGroup
1717
quit chan bool
1818
indexers []indexers.Indexer
19+
poll time.Duration
1920

2021
prevStats map[indexers.Indexer]indexers.Stats
2122
}
2223

2324
// NewDaemon creates a new daemon to run the given indexers
24-
func NewDaemon(cfg *Config, db *sql.DB, ixs []indexers.Indexer) *Daemon {
25+
func NewDaemon(cfg *Config, db *sql.DB, ixs []indexers.Indexer, poll time.Duration) *Daemon {
2526
return &Daemon{
2627
cfg: cfg,
2728
db: db,
2829
wg: &sync.WaitGroup{},
2930
quit: make(chan bool),
3031
indexers: ixs,
32+
poll: poll,
3133
prevStats: make(map[indexers.Indexer]indexers.Stats, len(ixs)),
3234
}
3335
}
@@ -41,13 +43,13 @@ func (d *Daemon) Start() {
4143
}
4244

4345
for _, i := range d.indexers {
44-
d.startIndexer(i, time.Second*5)
46+
d.startIndexer(i)
4547
}
4648

4749
d.startStatsReporter(time.Minute)
4850
}
4951

50-
func (d *Daemon) startIndexer(indexer indexers.Indexer, interval time.Duration) {
52+
func (d *Daemon) startIndexer(indexer indexers.Indexer) {
5153
d.wg.Add(1) // add ourselves to the wait group
5254

5355
log := logrus.WithField("indexer", indexer.Name())
@@ -62,7 +64,7 @@ func (d *Daemon) startIndexer(indexer indexers.Indexer, interval time.Duration)
6264
select {
6365
case <-d.quit:
6466
return
65-
case <-time.After(interval):
67+
case <-time.After(d.poll):
6668
_, err := indexer.Index(d.db, d.cfg.Rebuild, d.cfg.Cleanup)
6769
if err != nil {
6870
log.WithError(err).Error("error during indexing")

0 commit comments

Comments
 (0)