Skip to content

Commit cde2513

Browse files
0x01F4JohnRoesler
andauthored
Monitor: IncrementJob in case of skipped job run (#715)
Co-authored-by: John Roesler <johnrroesler@gmail.com>
1 parent a59b6a9 commit cde2513

File tree

2 files changed

+12
-6
lines changed

2 files changed

+12
-6
lines changed

executor.go

+11-6
Original file line numberDiff line numberDiff line change
@@ -333,19 +333,22 @@ func (e *executor) runJob(j internalJob, jIn jobIn) {
333333
if e.elector != nil {
334334
if err := e.elector.IsLeader(j.ctx); err != nil {
335335
e.sendOutForRescheduling(&jIn)
336+
e.incrementJobCounter(j, Skip)
336337
return
337338
}
338339
} else if j.locker != nil {
339340
lock, err := j.locker.Lock(j.ctx, j.name)
340341
if err != nil {
341342
e.sendOutForRescheduling(&jIn)
343+
e.incrementJobCounter(j, Skip)
342344
return
343345
}
344346
defer func() { _ = lock.Unlock(j.ctx) }()
345347
} else if e.locker != nil {
346348
lock, err := e.locker.Lock(j.ctx, j.name)
347349
if err != nil {
348350
e.sendOutForRescheduling(&jIn)
351+
e.incrementJobCounter(j, Skip)
349352
return
350353
}
351354
defer func() { _ = lock.Unlock(j.ctx) }()
@@ -365,14 +368,16 @@ func (e *executor) runJob(j internalJob, jIn jobIn) {
365368
}
366369
if err != nil {
367370
_ = callJobFuncWithParams(j.afterJobRunsWithError, j.id, j.name, err)
368-
if e.monitor != nil {
369-
e.monitor.IncrementJob(j.id, j.name, j.tags, Fail)
370-
}
371+
e.incrementJobCounter(j, Fail)
371372
} else {
372373
_ = callJobFuncWithParams(j.afterJobRuns, j.id, j.name)
373-
if e.monitor != nil {
374-
e.monitor.IncrementJob(j.id, j.name, j.tags, Success)
375-
}
374+
e.incrementJobCounter(j, Success)
375+
}
376+
}
377+
378+
func (e *executor) incrementJobCounter(j internalJob, status JobStatus) {
379+
if e.monitor != nil {
380+
e.monitor.IncrementJob(j.id, j.name, j.tags, status)
376381
}
377382
}
378383

monitor.go

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ type JobStatus string
1313
const (
1414
Fail JobStatus = "fail"
1515
Success JobStatus = "success"
16+
Skip JobStatus = "skip"
1617
)
1718

1819
// Monitor represents the interface to collect jobs metrics.

0 commit comments

Comments
 (0)