diff --git a/templates/project/providers/job/provider.go.tpl b/templates/project/providers/job/provider.go.tpl index 4c8f4e0..5e9c502 100644 --- a/templates/project/providers/job/provider.go.tpl +++ b/templates/project/providers/job/provider.go.tpl @@ -106,6 +106,8 @@ func (q *Job) AddPeriodicJob(job contracts.CronJobArg) error { if err != nil { return err } + q.l.Lock() + defer q.l.Unlock() q.periodicJobs[job.Arg.Kind()] = client.PeriodicJobs().Add(river.NewPeriodicJob( job.PeriodicInterval, @@ -126,6 +128,9 @@ func (q *Job) Cancel(kind string) error { return err } + q.l.Lock() + defer q.l.Unlock() + if h, ok := q.periodicJobs[kind]; ok { client.PeriodicJobs().Remove(h) delete(q.periodicJobs, kind) @@ -150,6 +155,9 @@ func (q *Job) Add(job contracts.JobArgs) error { return err } + q.l.Lock() + defer q.l.Unlock() + q.jobs[job.Kind()], err = client.Insert(q.ctx, job, lo.ToPtr(job.InsertOpts())) return err }