From fc40563ae436355437c600fcebd88564f56b48f2 Mon Sep 17 00:00:00 2001 From: Derrick Hammer Date: Sun, 25 Feb 2024 01:58:26 -0500 Subject: [PATCH] feat: add GetJobsByPrefix, GetJobByName, GetJobByID --- cron/cron.go | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/cron/cron.go b/cron/cron.go index 2ae7d65..b2b5b0f 100644 --- a/cron/cron.go +++ b/cron/cron.go @@ -3,10 +3,12 @@ package cron import ( "context" "errors" + "strings" + "time" + "github.com/google/uuid" "go.uber.org/fx" "go.uber.org/zap" - "time" "github.com/go-co-op/gocron/v2" ) @@ -166,3 +168,41 @@ func (c *CronServiceDefault) RerunJob(job CronJob) (gocron.Job, error) { return ret, nil } + +func (c *CronServiceDefault) GetJobsByPrefix(prefix string) []gocron.Job { + jobs := c.Scheduler().Jobs() + + var ret []gocron.Job + + for _, job := range jobs { + if strings.HasPrefix(job.Name(), prefix) { + ret = append(ret, job) + } + } + + return ret +} + +func (c *CronServiceDefault) GetJobByName(name string) gocron.Job { + jobs := c.Scheduler().Jobs() + + for _, job := range jobs { + if job.Name() == name { + return job + } + } + + return nil +} + +func (c *CronServiceDefault) GetJobByID(id uuid.UUID) gocron.Job { + jobs := c.Scheduler().Jobs() + + for _, job := range jobs { + if job.ID() == id { + return job + } + } + + return nil +}