diff --git a/common/task/periodic.go b/common/task/periodic.go index 37c56eb..7c1a235 100644 --- a/common/task/periodic.go +++ b/common/task/periodic.go @@ -95,6 +95,12 @@ func (t *Periodic) Start() error { return nil } +func (t *Periodic) WaitThenStart() { + time.AfterFunc(t.Interval, func() { + t.Start() + }) +} + // Close implements common.Closable. func (t *Periodic) Close() error { t.access.Lock() diff --git a/proxy/lib/pt_event_logger.go b/proxy/lib/pt_event_logger.go index df94b0a..cb262e4 100644 --- a/proxy/lib/pt_event_logger.go +++ b/proxy/lib/pt_event_logger.go @@ -13,7 +13,7 @@ func NewProxyEventLogger(logPeriod time.Duration, output io.Writer) event.Snowfl logger := log.New(output, "", log.LstdFlags|log.LUTC) el := &logEventLogger{logPeriod: logPeriod, logger: logger} el.task = &task.Periodic{Interval: logPeriod, Execute: el.logTick} - el.task.Start() + el.task.WaitThenStart() return el }