fix: process insight jobs during backfill
This commit is contained in:
@@ -47,13 +47,7 @@ func main() {
|
||||
defer poll.Stop()
|
||||
cleanup := time.NewTicker(24 * time.Hour)
|
||||
defer cleanup.Stop()
|
||||
nightly := time.NewTicker(time.Hour)
|
||||
defer nightly.Stop()
|
||||
if created, err := insightService.EnqueueAll(ctx, "NIGHTLY"); err != nil {
|
||||
logger.Error("initial insight scheduling failed", "error", err)
|
||||
} else {
|
||||
logger.Info("initial insight scheduling complete", "created_jobs", created)
|
||||
}
|
||||
go runInsightScheduler(ctx, logger, insightService)
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
@@ -80,15 +74,32 @@ func main() {
|
||||
} else if deleted > 0 {
|
||||
logger.Info("growth cleanup complete", "deleted_reports", deleted)
|
||||
}
|
||||
case <-nightly.C:
|
||||
scheduleCtx, scheduleCancel := context.WithTimeout(ctx, 5*time.Minute)
|
||||
created, err := insightService.EnqueueAll(scheduleCtx, "NIGHTLY")
|
||||
scheduleCancel()
|
||||
if err != nil {
|
||||
logger.Error("nightly insight scheduling failed", "error", err)
|
||||
} else if created > 0 {
|
||||
logger.Info("nightly insight scheduling complete", "created_jobs", created)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func runInsightScheduler(ctx context.Context, logger *slog.Logger, service *insight.Service) {
|
||||
run := func() {
|
||||
scheduleCtx, cancel := context.WithTimeout(ctx, 30*time.Minute)
|
||||
defer cancel()
|
||||
created, err := service.EnqueueAll(scheduleCtx, "NIGHTLY")
|
||||
if err != nil {
|
||||
if !errors.Is(err, context.Canceled) {
|
||||
logger.Error("insight scheduling failed", "error", err)
|
||||
}
|
||||
return
|
||||
}
|
||||
logger.Info("insight scheduling complete", "created_jobs", created)
|
||||
}
|
||||
run()
|
||||
ticker := time.NewTicker(time.Hour)
|
||||
defer ticker.Stop()
|
||||
for {
|
||||
select {
|
||||
case <-ctx.Done():
|
||||
return
|
||||
case <-ticker.C:
|
||||
run()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user