fix: harden ops runbooks and execution
This commit is contained in:
32
internal/core/runbook/cancel.go
Normal file
32
internal/core/runbook/cancel.go
Normal file
@@ -0,0 +1,32 @@
|
||||
package runbook
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var jobCancelMap sync.Map
|
||||
|
||||
func registerJobCancel(jobID uint, cancel context.CancelFunc) {
|
||||
jobCancelMap.Store(jobID, cancel)
|
||||
}
|
||||
|
||||
func clearJobCancel(jobID uint) {
|
||||
if v, ok := jobCancelMap.Load(jobID); ok {
|
||||
if cancel, ok2 := v.(context.CancelFunc); ok2 {
|
||||
cancel()
|
||||
}
|
||||
jobCancelMap.Delete(jobID)
|
||||
}
|
||||
}
|
||||
|
||||
func CancelJob(jobID uint) bool {
|
||||
if v, ok := jobCancelMap.Load(jobID); ok {
|
||||
if cancel, ok2 := v.(context.CancelFunc); ok2 {
|
||||
cancel()
|
||||
}
|
||||
jobCancelMap.Delete(jobID)
|
||||
return true
|
||||
}
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user