Documentation
¶
Overview ¶
Package manager 提供流管理器功能
流管理器负责管理多个流的生命周期,包括:
- 流状态机管理
- 事件系统
- 健康检查
- 资源限制
- 自动重连策略
使用示例:
mgr := manager.New(manager.Config{
MaxStreams: 100,
HealthCheckInterval: 10 * time.Second,
})
mgr.OnEvent(func(e manager.Event) {
log.Printf("Stream %s: %s", e.StreamID, e.Type)
})
mgr.Start()
defer mgr.Stop()
streamID, err := mgr.AddStream(streamConfig)
Index ¶
- type Config
- type Event
- type EventHandler
- type EventType
- type ManagedStream
- func (s *ManagedStream) CheckHealth(timeout time.Duration) bool
- func (s *ManagedStream) Pause() error
- func (s *ManagedStream) Restart() error
- func (s *ManagedStream) Resume() error
- func (s *ManagedStream) Start() error
- func (s *ManagedStream) State() StreamState
- func (s *ManagedStream) Stats() StreamStats
- func (s *ManagedStream) Stop() error
- type Manager
- func (m *Manager) ActiveStreamCount() int
- func (m *Manager) AddStream(config StreamConfig) (string, error)
- func (m *Manager) GetStream(id string) *ManagedStream
- func (m *Manager) IsRunning() bool
- func (m *Manager) ListStreams() []*ManagedStream
- func (m *Manager) ListStreamsByState(state StreamState) []*ManagedStream
- func (m *Manager) ListStreamsByTag(key, value string) []*ManagedStream
- func (m *Manager) OnEvent(handler EventHandler)
- func (m *Manager) PauseStream(id string) error
- func (m *Manager) RemoveStream(id string) error
- func (m *Manager) ResumeStream(id string) error
- func (m *Manager) Start() error
- func (m *Manager) StartStream(id string) error
- func (m *Manager) Stats() ManagerStats
- func (m *Manager) Stop() error
- func (m *Manager) StopStream(id string) error
- func (m *Manager) StreamCount() int
- type ManagerStats
- type StreamConfig
- type StreamState
- type StreamStats
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// 资源限制
MaxStreams int // 最大流数量(0 表示无限制)
MaxBandwidth int64 // 最大总带宽(bps,0 表示无限制)
MaxCPUPercent float64 // 最大 CPU 使用率(0-100,0 表示无限制)
MaxMemoryBytes int64 // 最大内存使用(字节,0 表示无限制)
// 健康检查
HealthCheckInterval time.Duration // 健康检查间隔
HealthCheckTimeout time.Duration // 健康检查超时
UnhealthyThreshold int // 连续失败次数阈值
// 重连策略
AutoReconnect bool // 是否自动重连
ReconnectDelay time.Duration // 重连延迟
MaxReconnectDelay time.Duration // 最大重连延迟
MaxReconnects int // 最大重连次数(0 表示无限制)
// 清理策略
IdleTimeout time.Duration // 空闲超时(自动停止)
StaleTimeout time.Duration // 过期超时(自动移除)
}
Config 管理器配置
type Event ¶
type Event struct {
Type EventType
StreamID string
Stream *ManagedStream
Timestamp time.Time
Data map[string]interface{}
Error error
}
Event 事件
type EventType ¶
type EventType string
EventType 事件类型
const ( EventStreamAdded EventType = "stream_added" EventStreamRemoved EventType = "stream_removed" EventStreamStarted EventType = "stream_started" EventStreamStopped EventType = "stream_stopped" EventStreamPaused EventType = "stream_paused" EventStreamResumed EventType = "stream_resumed" EventStreamFailed EventType = "stream_failed" EventStreamReconnecting EventType = "stream_reconnecting" EventStreamReconnected EventType = "stream_reconnected" EventHealthCheckFailed EventType = "health_check_failed" EventResourceLimit EventType = "resource_limit" EventError EventType = "error" )
type ManagedStream ¶
type ManagedStream struct {
ID string
Name string
Config StreamConfig
Tags map[string]string
Metadata map[string]interface{}
// contains filtered or unexported fields
}
ManagedStream 被管理的流
func (*ManagedStream) CheckHealth ¶
func (s *ManagedStream) CheckHealth(timeout time.Duration) bool
CheckHealth 检查健康状态
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager 流管理器
func (*Manager) ActiveStreamCount ¶
ActiveStreamCount 返回活跃流数量
func (*Manager) AddStream ¶
func (m *Manager) AddStream(config StreamConfig) (string, error)
AddStream 添加流
func (*Manager) ListStreamsByState ¶
func (m *Manager) ListStreamsByState(state StreamState) []*ManagedStream
ListStreamsByState 按状态列出流
func (*Manager) ListStreamsByTag ¶
func (m *Manager) ListStreamsByTag(key, value string) []*ManagedStream
ListStreamsByTag 按标签列出流
type ManagerStats ¶
type ManagerStats struct {
TotalStreams int64 // 总流数
ActiveStreams int64 // 活跃流数
FailedStreams int64 // 失败流数
TotalBandwidth int64 // 总带宽
TotalBytesIn int64 // 总输入字节
TotalBytesOut int64 // 总输出字节
TotalReconnects int64 // 总重连次数
Uptime time.Duration // 运行时间
StartTime time.Time // 启动时间
}
ManagerStats 管理器统计
type StreamConfig ¶
type StreamConfig struct {
ID string // 流 ID(为空则自动生成)
Name string // 流名称
InputURL string // 输入 URL
OutputURLs []string // 输出 URL 列表
Tags map[string]string // 标签
Metadata map[string]interface{} // 元数据
// 重连设置(覆盖管理器默认值)
AutoReconnect *bool
MaxReconnects *int
ReconnectDelay *time.Duration
MaxReconnectDelay *time.Duration
}
StreamConfig 流配置
type StreamState ¶
type StreamState int32
StreamState 流状态
const ( StateIdle StreamState = iota StateStarting StateRunning StatePaused StateReconnecting StateStopping StateStopped StateFailed )
Source Files
¶
- manager.go
- stream.go
Click to show internal directories.
Click to hide internal directories.