globalmanager

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2026 License: MIT Imports: 3 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Closable

type Closable interface {
	Close() error
}

Closable 定义可关闭行为

type GlobalManager

type GlobalManager struct {
	// contains filtered or unexported fields
}

GlobalManager 全局对象管理器,简称全局对象管理器,或名全局对象管理容器、全局对象容器、全部对象单例容器等

注意:该全局管理容器适用于读多写少场景

func NewGlobalManager

func NewGlobalManager() *GlobalManager

NewGlobalManager 获取全新的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) Rebuild

func (gm *GlobalManager) Rebuild(name KeyName) error

Rebuild 重建全局对象

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 HealthChecker

type HealthChecker interface {
	IsHealthy() bool
}

HealthChecker 定义健康检查行为

type InitializerFunc

type InitializerFunc func() (interface{}, error)

type InitializerMap

type InitializerMap map[string]InitializerFunc

type KeyName

type KeyName = string

type Rebuilder

type Rebuilder interface {
	Rebuild(...interface{}) (interface{}, error)
	GetConfPath() string // 获取配置路径
}

Rebuilder 定义重建行为

type RegisterKeyFunc

type RegisterKeyFunc func(...string) string

type RegisterKeySlice

type RegisterKeySlice []func(...string) string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL