Documentation
¶
Overview ¶
Package globalmanager 提供全局对象管理功能,用于管理应用程序中的单例对象。
该包提供了一个线程安全的全局对象管理器,支持延迟初始化、健康检查、重建和资源释放等功能。 适用于读多写少的场景。
基本用法:
// 创建全局管理器
gm := globalmanager.NewGlobalManagerOnce() 或 gm := globalmanager.NewGlobalManager()
// 注册对象初始化器
gm.Register("database", func() (interface{}, error) {
return &Database{}, nil
})
// 获取对象实例
db, err := gm.Get("database")
if err != nil {
log.Fatal(err)
}
// 类型断言使用
database := db.(*Database)
Index ¶
- type Closable
- type GlobalManager
- func (gm *GlobalManager) CheckHealth(name KeyName) (bool, error)
- func (gm *GlobalManager) Clear(name KeyName)
- func (gm *GlobalManager) ClearAll(conform ...bool)
- func (gm *GlobalManager) Get(name KeyName) (instance interface{}, err error)
- func (gm *GlobalManager) IsRegistered(name KeyName) bool
- func (gm *GlobalManager) Range(f func(key, value interface{}) bool)
- func (gm *GlobalManager) Rebuild(name KeyName) error
- func (gm *GlobalManager) Register(name KeyName, initializer InitializerFunc) bool
- func (gm *GlobalManager) Registers(initializers InitializerMap)
- func (gm *GlobalManager) Release(name KeyName) error
- func (gm *GlobalManager) ReleaseAll(conform ...bool)
- func (gm *GlobalManager) Unregister(name KeyName)
- type HealthChecker
- type InitializerFunc
- type InitializerMap
- type KeyName
- type Rebuilder
- type RegisterKeyFunc
- type RegisterKeySlice
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type GlobalManager ¶
type GlobalManager struct {
// contains filtered or unexported fields
}
GlobalManager 全局对象管理器,简称全局对象管理器,或名全局对象管理容器、全局对象容器、全部对象单例容器等
注意:该全局管理容器适用于读多写少场景
func NewGlobalManagerOnce ¶
func NewGlobalManagerOnce() *GlobalManager
NewGlobalManagerOnce 获取GlobalManager单例
func (*GlobalManager) CheckHealth ¶
func (gm *GlobalManager) CheckHealth(name KeyName) (bool, error)
CheckHealth 检查全局对象是否健康
func (*GlobalManager) Clear ¶
func (gm *GlobalManager) Clear(name KeyName)
Clear 直接永久删除key,后续无法Get(),只能重新注册
func (*GlobalManager) ClearAll ¶
func (gm *GlobalManager) ClearAll(conform ...bool)
ClearAll 不受阻碍的清空全局管理器管理的全部对象和资源
func (*GlobalManager) Get ¶
func (gm *GlobalManager) Get(name KeyName) (instance interface{}, err error)
Get 获取一个全局对象
func (*GlobalManager) IsRegistered ¶
func (gm *GlobalManager) IsRegistered(name KeyName) bool
IsRegistered 方法:检查 key 是否存在
func (*GlobalManager) Range ¶
func (gm *GlobalManager) Range(f func(key, value interface{}) bool)
Range 遍历全局管理器中的所有对象
func (*GlobalManager) Register ¶
func (gm *GlobalManager) Register(name KeyName, initializer InitializerFunc) bool
Register 注册一个全局对象的初始化器
func (*GlobalManager) Registers ¶
func (gm *GlobalManager) Registers(initializers InitializerMap)
Registers 批量注册全局对象的初始化器
func (*GlobalManager) Release ¶
func (gm *GlobalManager) Release(name KeyName) error
Release 扩展 GlobalManager 支持资源释放, 不删除key,要重建sync.Once,以便可以Get时重新初始化
func (*GlobalManager) ReleaseAll ¶
func (gm *GlobalManager) ReleaseAll(conform ...bool)
ReleaseAll 释放所有已注册对象的资源,仅仅释放,支持get时重建对象
func (*GlobalManager) Unregister ¶
func (gm *GlobalManager) Unregister(name KeyName)
Unregister 直接永久删除key,后续无法Get(),只能重新注册
type InitializerFunc ¶
type InitializerFunc func() (interface{}, error)
type InitializerMap ¶
type InitializerMap map[string]InitializerFunc
type Rebuilder ¶
type Rebuilder interface {
Rebuild(...interface{}) (interface{}, error)
GetConfPath() string // 获取配置路径
}
Rebuilder 定义重建行为
type RegisterKeyFunc ¶
type RegisterKeySlice ¶
Click to show internal directories.
Click to hide internal directories.