diff options
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/server/continuous.go | 10 | ||||
| -rw-r--r-- | internal/server/scheduler.go | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/internal/server/continuous.go b/internal/server/continuous.go index 90e5f8a..3178240 100644 --- a/internal/server/continuous.go +++ b/internal/server/continuous.go @@ -35,10 +35,12 @@ func (c *continuous) runJobs(ctx context.Context) { } go func(job config.Continuous) { c.runJob(ctx, job) + retryTicker := time.NewTicker(time.Minute) + defer retryTicker.Stop() for { select { - // Retry after a minute - case <-time.After(time.Minute): + // Retry after a minute. + case <-retryTicker.C: c.runJob(ctx, job) case <-ctx.Done(): return @@ -98,9 +100,11 @@ func (c *continuous) runJob(ctx context.Context, job config.Continuous) { func (c *continuous) waitForDayChange(ctx context.Context) bool { startTime := time.Now() + checkTicker := time.NewTicker(time.Second) + defer checkTicker.Stop() for { select { - case <-time.After(time.Second): + case <-checkTicker.C: if time.Now().Day() != startTime.Day() { return true } diff --git a/internal/server/scheduler.go b/internal/server/scheduler.go index b8ccd9b..abfe257 100644 --- a/internal/server/scheduler.go +++ b/internal/server/scheduler.go @@ -29,9 +29,11 @@ func (s *scheduler) start(ctx context.Context) { // First run after just 10s! time.Sleep(time.Second * 2) s.runJobs(ctx) + runTicker := time.NewTicker(time.Minute) + defer runTicker.Stop() for { select { - case <-time.After(time.Minute): + case <-runTicker.C: s.runJobs(ctx) case <-ctx.Done(): return |
