Skip to content

Commit 8bc8c99

Browse files
ZhengYa-0110SongZhen0704
authored andcommitted
fix: disorder of memory cache in recorder
1 parent f4bbf01 commit 8bc8c99

File tree

1 file changed

+21
-26
lines changed
  • server/controller/recorder/cache

1 file changed

+21
-26
lines changed

server/controller/recorder/cache/cache.go

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ package cache
1919
import (
2020
"context"
2121
"fmt"
22-
"slices"
2322
"time"
2423

2524
"github.com/op/go-logging"
@@ -207,34 +206,39 @@ func (c *Cache) TryRefresh() bool {
207206
}
208207

209208
func (c *Cache) triggerTagrecorderHealers() {
210-
if c.Sequence == 0 || c.metadata.Config.TagRecorderSelfHealCfg.Enabled {
209+
if c.needTagSelfHealing() {
211210
c.tagrecorderHealers.Run()
212211
} else {
213212
log.Info("tagrecorder self heal is disabled", c.metadata.LogPrefixes)
214213
}
215214
}
216215

216+
func (c *Cache) needSelfHealing() bool {
217+
return c.metadata.Config.SelfHealCfg.Enabled || c.Sequence == 0
218+
}
219+
220+
func (c *Cache) needTagSelfHealing() bool {
221+
return c.metadata.Config.TagRecorderSelfHealCfg.Enabled || c.Sequence == 0
222+
}
223+
217224
// 所有缓存的刷新入口
218225
func (c *Cache) Refresh() {
219226
defer c.ResetRefreshSignal(RefreshSignalCallerSelfHeal)
220227

221228
c.triggerTagrecorderHealers()
222229

230+
if !c.needSelfHealing() {
231+
log.Info("self heal is disabled", c.metadata.LogPrefixes)
232+
return
233+
}
234+
223235
oldDiffBaseDataSet := c.DiffBaseDataSet
224236
oldToolDataSet := c.ToolDataSet
225237

226238
c.DiffBaseDataSet = diffbase.NewDataSet(c.metadata)
227239
c.ToolDataSet = tool.NewDataSet(c.metadata)
228240
c.SetLogLevel(logging.DEBUG, RefreshSignalCallerSelfHeal)
229241
c.refreshFailed = false
230-
selfHealEnabled := c.metadata.Config.SelfHealCfg.Enabled
231-
selfHealResources := c.metadata.Config.SelfHealCfg.Resources
232-
seq := c.Sequence
233-
234-
if !selfHealEnabled && seq != 0 {
235-
log.Info("self heal is disabled", c.metadata.LogPrefixes)
236-
return
237-
}
238242

239243
// 分类刷新资源的相关缓存
240244

@@ -274,23 +278,14 @@ func (c *Cache) Refresh() {
274278
podIngressIDs := c.refreshPodIngresses()
275279
c.refreshPodIngressRules(podIngressIDs)
276280
c.refreshPodIngresseRuleBackends(podIngressIDs)
277-
podServiceIDs := []int{}
278-
if seq == 0 || len(selfHealResources) == 0 || slices.Contains(selfHealResources, "pod_service") {
279-
podServiceIDs = c.refreshPodServices()
280-
c.refreshPodServicePorts(podServiceIDs)
281-
}
282-
if seq == 0 || len(selfHealResources) == 0 || slices.Contains(selfHealResources, "pod_group") {
283-
c.refreshPodGroups()
284-
c.refreshPodGroupPorts(podServiceIDs)
285-
c.refreshPodGroupConfigMapConnections()
286-
}
281+
podServiceIDs := c.refreshPodServices()
282+
c.refreshPodServicePorts(podServiceIDs)
283+
c.refreshPodGroups()
284+
c.refreshPodGroupPorts(podServiceIDs)
285+
c.refreshPodGroupConfigMapConnections()
287286
c.refreshPodReplicaSets()
288-
if seq == 0 || len(selfHealResources) == 0 || slices.Contains(selfHealResources, "pod") {
289-
c.refreshPods()
290-
}
291-
if seq == 0 || len(selfHealResources) == 0 || slices.Contains(selfHealResources, "config_map") {
292-
c.refreshConfigMaps()
293-
}
287+
c.refreshPods()
288+
c.refreshConfigMaps()
294289

295290
networkIDs := c.refreshNetworks()
296291
c.refreshSubnets(networkIDs)

0 commit comments

Comments
 (0)