add distributed locker for v2 (#614)

* add distributed locker for v2

* fix logger test

* enhance logger test
This commit is contained in:
John Roesler
2023-11-14 09:56:05 -06:00
committed by GitHub
parent 3e2df30371
commit 7fea987137
9 changed files with 191 additions and 56 deletions
+7
View File
@@ -22,6 +22,7 @@ type executor struct {
singletonRunners map[uuid.UUID]singletonRunner
limitMode *limitModeConfig
elector Elector
locker Locker
}
type singletonRunner struct {
@@ -340,6 +341,12 @@ func (e *executor) runJob(j internalJob) {
if err := e.elector.IsLeader(j.ctx); err != nil {
return
}
} else if e.locker != nil {
lock, err := e.locker.Lock(j.ctx, j.id.String())
if err != nil {
return
}
defer func() { _ = lock.Unlock(j.ctx) }()
}
_ = callJobFuncWithParams(j.beforeJobRuns, j.id)