fix(cloudmon): 避免cloudmon任务堆积导致大量请求 (#21047)

This commit is contained in:
屈轩
2024-08-19 10:13:16 +08:00
committed by GitHub
parent 6966494f41
commit 3c2013cd82
+21 -3
View File
@@ -447,10 +447,16 @@ func (self *SResources) Init(ctx context.Context, userCred mcclient.TokenCredent
}
}
var incrementSync = false
func (self *SResources) IncrementSync(ctx context.Context, userCred mcclient.TokenCredential, isStart bool) {
if isStart {
if isStart || incrementSync {
return
}
incrementSync = true
defer func() {
incrementSync = false
}()
err := func() error {
errs := []error{}
err := self.Cloudaccounts.increment(ctx)
@@ -516,10 +522,16 @@ func (self *SResources) IncrementSync(ctx context.Context, userCred mcclient.Tok
}
}
var decrementSync = false
func (self *SResources) DecrementSync(ctx context.Context, userCred mcclient.TokenCredential, isStart bool) {
if isStart {
if isStart || decrementSync {
return
}
decrementSync = true
defer func() {
decrementSync = false
}()
err := func() error {
errs := []error{}
err := self.Cloudaccounts.decrement(ctx)
@@ -585,10 +597,16 @@ func (self *SResources) DecrementSync(ctx context.Context, userCred mcclient.Tok
}
}
var updateSync = false
func (self *SResources) UpdateSync(ctx context.Context, userCred mcclient.TokenCredential, isStart bool) {
if isStart {
if isStart || updateSync {
return
}
updateSync = true
defer func() {
updateSync = false
}()
err := func() error {
errs := []error{}
err := self.Cloudaccounts.update(ctx)