mirror of https://github.com/go-co-op/gocron.git
Monitor: IncrementJob in case of skipped job run (#715)
Co-authored-by: John Roesler <johnrroesler@gmail.com>
This commit is contained in:
parent
a59b6a928a
commit
cde2513062
17
executor.go
17
executor.go
|
|
@ -333,12 +333,14 @@ func (e *executor) runJob(j internalJob, jIn jobIn) {
|
||||||
if e.elector != nil {
|
if e.elector != nil {
|
||||||
if err := e.elector.IsLeader(j.ctx); err != nil {
|
if err := e.elector.IsLeader(j.ctx); err != nil {
|
||||||
e.sendOutForRescheduling(&jIn)
|
e.sendOutForRescheduling(&jIn)
|
||||||
|
e.incrementJobCounter(j, Skip)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
} else if j.locker != nil {
|
} else if j.locker != nil {
|
||||||
lock, err := j.locker.Lock(j.ctx, j.name)
|
lock, err := j.locker.Lock(j.ctx, j.name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.sendOutForRescheduling(&jIn)
|
e.sendOutForRescheduling(&jIn)
|
||||||
|
e.incrementJobCounter(j, Skip)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer func() { _ = lock.Unlock(j.ctx) }()
|
defer func() { _ = lock.Unlock(j.ctx) }()
|
||||||
|
|
@ -346,6 +348,7 @@ func (e *executor) runJob(j internalJob, jIn jobIn) {
|
||||||
lock, err := e.locker.Lock(j.ctx, j.name)
|
lock, err := e.locker.Lock(j.ctx, j.name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e.sendOutForRescheduling(&jIn)
|
e.sendOutForRescheduling(&jIn)
|
||||||
|
e.incrementJobCounter(j, Skip)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
defer func() { _ = lock.Unlock(j.ctx) }()
|
defer func() { _ = lock.Unlock(j.ctx) }()
|
||||||
|
|
@ -365,14 +368,16 @@ func (e *executor) runJob(j internalJob, jIn jobIn) {
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
_ = callJobFuncWithParams(j.afterJobRunsWithError, j.id, j.name, err)
|
_ = callJobFuncWithParams(j.afterJobRunsWithError, j.id, j.name, err)
|
||||||
if e.monitor != nil {
|
e.incrementJobCounter(j, Fail)
|
||||||
e.monitor.IncrementJob(j.id, j.name, j.tags, Fail)
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
_ = callJobFuncWithParams(j.afterJobRuns, j.id, j.name)
|
_ = callJobFuncWithParams(j.afterJobRuns, j.id, j.name)
|
||||||
if e.monitor != nil {
|
e.incrementJobCounter(j, Success)
|
||||||
e.monitor.IncrementJob(j.id, j.name, j.tags, Success)
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (e *executor) incrementJobCounter(j internalJob, status JobStatus) {
|
||||||
|
if e.monitor != nil {
|
||||||
|
e.monitor.IncrementJob(j.id, j.name, j.tags, status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ type JobStatus string
|
||||||
const (
|
const (
|
||||||
Fail JobStatus = "fail"
|
Fail JobStatus = "fail"
|
||||||
Success JobStatus = "success"
|
Success JobStatus = "success"
|
||||||
|
Skip JobStatus = "skip"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Monitor represents the interface to collect jobs metrics.
|
// Monitor represents the interface to collect jobs metrics.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue