fix: job mutext

This commit is contained in:
rogeecn
2025-03-17 11:51:42 +08:00
parent 022597d2f9
commit e595ecb7af

View File

@@ -106,6 +106,8 @@ func (q *Job) AddPeriodicJob(job contracts.CronJobArg) error {
if err != nil { if err != nil {
return err return err
} }
q.l.Lock()
defer q.l.Unlock()
q.periodicJobs[job.Arg.Kind()] = client.PeriodicJobs().Add(river.NewPeriodicJob( q.periodicJobs[job.Arg.Kind()] = client.PeriodicJobs().Add(river.NewPeriodicJob(
job.PeriodicInterval, job.PeriodicInterval,
@@ -126,6 +128,9 @@ func (q *Job) Cancel(kind string) error {
return err return err
} }
q.l.Lock()
defer q.l.Unlock()
if h, ok := q.periodicJobs[kind]; ok { if h, ok := q.periodicJobs[kind]; ok {
client.PeriodicJobs().Remove(h) client.PeriodicJobs().Remove(h)
delete(q.periodicJobs, kind) delete(q.periodicJobs, kind)
@@ -150,6 +155,9 @@ func (q *Job) Add(job contracts.JobArgs) error {
return err return err
} }
q.l.Lock()
defer q.l.Unlock()
q.jobs[job.Kind()], err = client.Insert(q.ctx, job, lo.ToPtr(job.InsertOpts())) q.jobs[job.Kind()], err = client.Insert(q.ctx, job, lo.ToPtr(job.InsertOpts()))
return err return err
} }