mirror of
https://github.com/Sagit-chu/flvx.git
synced 2026-10-13 20:46:38 +08:00
流量统计
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
package traffic
|
||||
|
||||
import (
|
||||
"context"
|
||||
"sync"
|
||||
)
|
||||
|
||||
// Manager 流量管理器接口
|
||||
type Manager interface {
|
||||
RecordTraffic(ctx context.Context, service string, upload, download int64) error
|
||||
GetAllServicesStats(ctx context.Context) (map[string]map[string]int64, error)
|
||||
ClearAllTrafficStats(ctx context.Context) error
|
||||
Close() error
|
||||
TestConnection(ctx context.Context) error
|
||||
}
|
||||
|
||||
var (
|
||||
globalManager Manager
|
||||
once sync.Once
|
||||
)
|
||||
|
||||
// GetGlobalManager 获取全局流量管理器实例
|
||||
func GetGlobalManager() Manager {
|
||||
once.Do(func() {
|
||||
globalManager = NewMemoryManager()
|
||||
})
|
||||
return globalManager
|
||||
}
|
||||
|
||||
// SetGlobalManager 设置全局流量管理器(用于测试)
|
||||
func SetGlobalManager(m Manager) {
|
||||
globalManager = m
|
||||
}
|
||||
Reference in New Issue
Block a user