fix: conflict error on load-balanced and excluded routes

This commit is contained in:
yusing
2025-06-05 01:16:53 +08:00
parent 44ef351840
commit d3568d9c35
4 changed files with 41 additions and 6 deletions

View File

@@ -39,6 +39,14 @@ func (p *Pool[T]) Add(obj T) {
}
}
func (p *Pool[T]) AddKey(key string, obj T) {
p.checkExists(key)
p.m.Store(key, obj)
if !p.disableLog {
log.Info().Msgf("%s: added %s", p.name, obj.Name())
}
}
func (p *Pool[T]) AddIfNotExists(obj T) (actual T, added bool) {
actual, loaded := p.m.LoadOrStore(obj.Key(), obj)
return actual, !loaded
@@ -51,6 +59,13 @@ func (p *Pool[T]) Del(obj T) {
}
}
func (p *Pool[T]) DelKey(key string) {
p.m.Delete(key)
if !p.disableLog {
log.Info().Msgf("%s: removed %s", p.name, key)
}
}
func (p *Pool[T]) Get(key string) (T, bool) {
return p.m.Load(key)
}