From e827f804962f3a8b50d5d05ba05676c084ba8b3d Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 5 Mar 2026 18:16:47 +0000 Subject: [PATCH] Address review: omit RunImmediately: false, add max 3 retries to backoff Co-authored-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> --- backend/internal/job/api_key_expiry_job.go | 2 +- backend/internal/job/file_cleanup_job.go | 2 +- backend/internal/job/scheduler.go | 1 + backend/internal/service/scim_service.go | 2 +- 4 files changed, 4 insertions(+), 3 deletions(-) diff --git a/backend/internal/job/api_key_expiry_job.go b/backend/internal/job/api_key_expiry_job.go index f7771c27..595e51a0 100644 --- a/backend/internal/job/api_key_expiry_job.go +++ b/backend/internal/job/api_key_expiry_job.go @@ -22,7 +22,7 @@ func (s *Scheduler) RegisterApiKeyExpiryJob(ctx context.Context, apiKeyService * } // Send every day at midnight - return s.RegisterJob(ctx, "ExpiredApiKeyEmailJob", gocron.CronJob("0 0 * * *", false), jobs.checkAndNotifyExpiringApiKeys, service.RegisterJobOpts{RunImmediately: false}) + return s.RegisterJob(ctx, "ExpiredApiKeyEmailJob", gocron.CronJob("0 0 * * *", false), jobs.checkAndNotifyExpiringApiKeys, service.RegisterJobOpts{}) } func (j *ApiKeyEmailJobs) checkAndNotifyExpiringApiKeys(ctx context.Context) error { diff --git a/backend/internal/job/file_cleanup_job.go b/backend/internal/job/file_cleanup_job.go index 45b9a63b..71f0dd34 100644 --- a/backend/internal/job/file_cleanup_job.go +++ b/backend/internal/job/file_cleanup_job.go @@ -22,7 +22,7 @@ func (s *Scheduler) RegisterFileCleanupJobs(ctx context.Context, db *gorm.DB, fi var errs []error errs = append(errs, - s.RegisterJob(ctx, "ClearUnusedDefaultProfilePictures", gocron.DurationJob(24*time.Hour), jobs.clearUnusedDefaultProfilePictures, service.RegisterJobOpts{RunImmediately: false}), + s.RegisterJob(ctx, "ClearUnusedDefaultProfilePictures", gocron.DurationJob(24*time.Hour), jobs.clearUnusedDefaultProfilePictures, service.RegisterJobOpts{}), ) // Only necessary for file system storage diff --git a/backend/internal/job/scheduler.go b/backend/internal/job/scheduler.go index d7427b1b..bbfaef50 100644 --- a/backend/internal/job/scheduler.go +++ b/backend/internal/job/scheduler.go @@ -75,6 +75,7 @@ func (s *Scheduler) RegisterJob(ctx context.Context, name string, def gocron.Job return struct{}{}, origJob(ctx) }, backoff.WithBackOff(opts.BackOff), + backoff.WithMaxTries(3), backoff.WithNotify(func(err error, d time.Duration) { slog.WarnContext(ctx, "Job failed, retrying", slog.String("name", name), diff --git a/backend/internal/service/scim_service.go b/backend/internal/service/scim_service.go index 57c5cec3..f21f8be7 100644 --- a/backend/internal/service/scim_service.go +++ b/backend/internal/service/scim_service.go @@ -144,7 +144,7 @@ func (s *ScimService) ScheduleSync() { err := s.scheduler.RegisterJob( context.Background(), jobName, - gocron.OneTimeJob(gocron.OneTimeJobStartDateTime(start)), s.SyncAll, RegisterJobOpts{RunImmediately: false}) + gocron.OneTimeJob(gocron.OneTimeJobStartDateTime(start)), s.SyncAll, RegisterJobOpts{}) if err != nil { slog.Error("Failed to schedule SCIM sync", slog.Any("error", err))