diff --git a/internal/app/poll/poller.go b/internal/app/poll/poller.go index c06c143f..0cb45fe9 100644 --- a/internal/app/poll/poller.go +++ b/internal/app/poll/poller.go @@ -157,17 +157,16 @@ func addJitter(d time.Duration) time.Duration { func (p *Poller) pollOnce() { for { - interval := addJitter(p.calculateInterval()) - timer := time.NewTimer(interval) - select { - case <-timer.C: - case <-p.pollingCtx.Done(): - timer.Stop() - return - } - task, ok := p.fetchTask(p.pollingCtx) if !ok { + interval := addJitter(p.calculateInterval()) + timer := time.NewTimer(interval) + select { + case <-timer.C: + case <-p.pollingCtx.Done(): + timer.Stop() + return + } continue } diff --git a/internal/pkg/config/config.go b/internal/pkg/config/config.go index e19cb4c1..eefba633 100644 --- a/internal/pkg/config/config.go +++ b/internal/pkg/config/config.go @@ -32,7 +32,6 @@ type Runner struct { FetchTimeout time.Duration `yaml:"fetch_timeout"` // FetchTimeout specifies the timeout duration for fetching resources. FetchInterval time.Duration `yaml:"fetch_interval"` // FetchInterval specifies the interval duration for fetching resources. FetchIntervalMax time.Duration `yaml:"fetch_interval_max"` // FetchIntervalMax specifies the maximum backoff interval when idle. - ReportInterval time.Duration `yaml:"report_interval"` // Deprecated: use LogReportInterval and StateReportInterval instead. LogReportInterval time.Duration `yaml:"log_report_interval"` // LogReportInterval specifies the base interval for periodic log flush. LogReportMaxLatency time.Duration `yaml:"log_report_max_latency"` // LogReportMaxLatency specifies the max time a log row can wait before being sent. LogReportBatchSize int `yaml:"log_report_batch_size"` // LogReportBatchSize triggers immediate log flush when buffer reaches this size.