services

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2025 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

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

Manager 结构体管理模块的生命周期,包括上下文和取消功能。提供添加、删除和管理模块的方法。

func NewManager

func NewManager() *Manager

NewManager 创建一个新的Manager实例,初始化模块、上下文和取消功能的映射。

func (*Manager) AddModule

func (m *Manager) AddModule(name string, module Module)

AddModule 将新模块添加到管理器的模块映射中,使用锁确保线程安全。

func (*Manager) DelModule

func (m *Manager) DelModule(name string)

DelModule 从管理器的模块映射中删除模块,使用锁确保线程安全。

func (*Manager) Done

func (m *Manager) Done(stop context.CancelFunc) <-chan struct{}

Done 等待所有运行中的模块优雅地退出,使用等待组同步它们的完成。它返回一个信号所有模块退出的通道。

func (*Manager) StartAndServe

func (m *Manager) StartAndServe(ctx context.Context)

StartAndServe 初始化管理器的上下文,锁定模块映射,检查和排序模块启动顺序,并按顺序启动每个模块。处理启动错误并监控状态变化。

type Module

type Module interface {
	Name() string
	Status() *ModuleStatus
	Run(ctx context.Context)
	Requires() []string
}

Module 接口定义模块结构,包括获取名称、状态、运行模块和列出依赖的方法。

type ModuleStatus

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

ModuleStatus 模块状态类

func NewModuleStatus

func NewModuleStatus() *ModuleStatus

NewModuleStatus 新建一个 ModuleStatus 实例

func (*ModuleStatus) Get

func (s *ModuleStatus) Get() Status

Get 获取模块状态

func (*ModuleStatus) Set

func (s *ModuleStatus) Set(status Status)

Set 设置模块状态

func (*ModuleStatus) Watch

func (s *ModuleStatus) Watch() <-chan Status

Watch 监听状态变化

type Status

type Status string

Status 定义状态类型

const (
	// RunningStatus 模块正在运行
	RunningStatus Status = "running"
	// StoppedStatus 模块停止运行
	StoppedStatus Status = "stopped"
)

Jump to

Keyboard shortcuts

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