feat(pool): 修改NewBadgerPool函数接受数据库路径参数并移除GetAllConnIDs方法

- 修改NewBadgerPool函数签名以接受badgerDir字符串参数
- 将默认数据库路径配置改为通过参数传入
- 移除GetAllConnIDs方法及其相关实现代码
- 更新TCPServer和WebSocket Manager构造函数以传递数据库路径
- 修复TCP服务器和WebSocket示例中的初始化调用
This commit is contained in:
2026-02-27 10:06:26 +08:00
parent 5e22f2c2c0
commit 4c300374cb
5 changed files with 8 additions and 54 deletions
+2 -48
View File
@@ -43,10 +43,10 @@ type BadgerPool struct {
}
// NewBadgerPool 创建BadgerDB连接池
func NewBadgerPool() (*BadgerPool, error) {
func NewBadgerPool(badgerDir string) (*BadgerPool, error) {
ctx, cancel := context.WithCancel(context.Background())
db, err := badger.Open(badger.DefaultOptions(filepath.Join(gfile.Pwd(), "badger")))
db, err := badger.Open(badger.DefaultOptions(badgerDir))
if err != nil {
cancel()
return nil, fmt.Errorf("failed to open badger db: %w", err)
@@ -265,52 +265,6 @@ func (p *BadgerPool) Count() (int, error) {
return count, nil
}
// GetAllConnIDs 获取所有在线连接的ID列表
func (p *BadgerPool) GetAllConnIDs() ([]string, error) {
p.mutex.RLock()
// 如果内存缓存不为空,从缓存中提取在线连接的ID
if len(p.cache) > 0 {
ids := make([]string, 0, len(p.cache))
for id, conn := range p.cache {
if conn.IsActive {
ids = append(ids, id)
}
}
p.mutex.RUnlock()
return ids, nil
}
p.mutex.RUnlock()
// 从BadgerDB获取所有在线连接的ID
var ids []string
err := p.db.View(func(txn *badger.Txn) error {
opts := badger.DefaultIteratorOptions
opts.PrefetchSize = 10
it := txn.NewIterator(opts)
defer it.Close()
for it.Rewind(); it.Valid(); it.Next() {
item := it.Item()
var connInfo ConnectionInfo
err := item.Value(func(val []byte) error {
return json.Unmarshal(val, &connInfo)
})
if err != nil {
return err
}
if connInfo.IsActive {
ids = append(ids, string(item.Key()))
}
}
return nil
})
if err != nil {
return nil, fmt.Errorf("failed to get all connection IDs: %w", err)
}
return ids, nil
}
// CleanupInactive 清理不活跃的连接
func (p *BadgerPool) CleanupInactive(duration time.Duration) error {
allConns, err := p.GetAll()