@@ -19,7 +19,6 @@ package cache
1919import (
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
209208func (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// 所有缓存的刷新入口
218225func (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