From a2ee46dbb3f9a8ed9b19dee6aaac49d0f784fdb7 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sun, 28 Jan 2024 16:39:04 -0500 Subject: [PATCH] refactor: change retry task to use the same job UUID, so we can track then --- cron/cron.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/cron/cron.go b/cron/cron.go index 8f0740e..66e050c 100644 --- a/cron/cron.go +++ b/cron/cron.go @@ -50,6 +50,7 @@ type RetryableTaskParams struct { } type CronJob struct { + JobId uuid.UUID Job gocron.JobDefinition Task gocron.Task Options []gocron.JobOption @@ -122,8 +123,9 @@ func (c *CronServiceImpl) RetryableTask(params RetryableTaskParams) CronJob { taskRetry.Attempt++ retryTask := c.RetryableTask(taskRetry) + retryTask.JobId = jobID - _, err = c.CreateJob(retryTask) + _, err = c.RerunJob(retryTask) if err != nil { c.logger.Error("Failed to create retry job", zap.Error(err)) } @@ -151,3 +153,12 @@ func (c *CronServiceImpl) CreateJob(job CronJob) (gocron.Job, error) { return ret, nil } +func (c *CronServiceImpl) RerunJob(job CronJob) (gocron.Job, error) { + ret, err := c.Scheduler().Update(job.JobId, job.Job, job.Task, job.Options...) + + if err != nil { + return nil, err + } + + return ret, nil +}