manager

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 25, 2026 License: MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ZeroUptime = time.Duration(0)
)

Variables

View Source
var Component = &component.Component{
	Name: "cluster.manager",
	Dependencies: component.Components{
		runner.Component,
		config.Component,
	},
	Init: component.StepFunc(func(container container.Container) error {
		return container.Provides(
			NewMe,
			func(m *Me) cluster.Me { return m },
			newManager,
			func(m *manager) cluster.Manager { return m },
		)
	}),
	Execute: component.StepFunc(func(container container.Container) error {
		return container.Invoke(func(manager *manager, m *Me) {
			m.onChangeRole.Subscribe(manager.replicaOnChangeRole)
		})
	}),
}
View Source
var (
	PeerAlreadyExistsError = errors.New("already exists")
)

Functions

This section is empty.

Types

type Me

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

func NewMe

func NewMe(closer closer.Closer, compogoApp *compogo.App, config *managerConfig.Replica) *Me

func (*Me) AddRole

func (m *Me) AddRole(role domain.Role)

func (*Me) AddRoles

func (m *Me) AddRoles(roles set.Set[domain.Role])

func (*Me) GetAvailableRoles

func (m *Me) GetAvailableRoles() set.Set[domain.Role]

func (*Me) GetHost

func (m *Me) GetHost() string

func (*Me) GetId

func (m *Me) GetId() uuid.UUID

func (*Me) GetMeta

func (m *Me) GetMeta() *domain.Meta

func (*Me) GetName

func (m *Me) GetName() string

func (*Me) GetResource

func (m *Me) GetResource() *linker.Linker[resource.Type, *resource.Resource]

func (*Me) GetRoles

func (m *Me) GetRoles() set.Set[domain.Role]

func (*Me) GetScore

func (m *Me) GetScore() float32

func (*Me) GetState

func (m *Me) GetState() *domain.State

func (*Me) GetTimeStart

func (m *Me) GetTimeStart() time.Time

func (*Me) GetUptime

func (m *Me) GetUptime() time.Duration

func (*Me) IsMe

func (m *Me) IsMe() bool

func (*Me) OnChangeResource

func (m *Me) OnChangeResource(_ context.Context, resource *resource.Resource)

func (*Me) OnChangeRole

func (m *Me) OnChangeRole() emitter.Emitter[cluster.Replica]

func (*Me) OnChangeScore

func (m *Me) OnChangeScore() emitter.Emitter[cluster.Me]

func (*Me) RemoveRole

func (m *Me) RemoveRole(role domain.Role)

func (*Me) RemoveRoles

func (m *Me) RemoveRoles(roles set.Set[domain.Role])

func (*Me) SetScore

func (m *Me) SetScore(score float32)

type Peer

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

func NewPeer

func NewPeer(
	host string,
	me cluster.Me,
	delayConfig *managerConfig.Delay,
	grpcConfig *grpcClient.Config,
	logger logger.Logger,
	closer closer.Closer,
) *Peer

func (*Peer) Close

func (r *Peer) Close() error

func (*Peer) GetAvailableRoles

func (r *Peer) GetAvailableRoles() set.Set[domain.Role]

func (*Peer) GetGrpcConnection

func (r *Peer) GetGrpcConnection() (grpc.ClientConnInterface, error)

func (*Peer) GetHost

func (r *Peer) GetHost() string

func (*Peer) GetId

func (r *Peer) GetId() uuid.UUID

func (*Peer) GetName

func (r *Peer) GetName() string

func (*Peer) GetResource

func (r *Peer) GetResource() *linker.Linker[resource.Type, *resource.Resource]

func (*Peer) GetRoles

func (r *Peer) GetRoles() set.Set[domain.Role]

func (*Peer) GetScore

func (r *Peer) GetScore() float32

func (*Peer) GetStatus

func (r *Peer) GetStatus() domain.Status

func (*Peer) GetUptime

func (r *Peer) GetUptime() time.Duration

func (*Peer) IsMe

func (r *Peer) IsMe() bool

func (*Peer) Name

func (r *Peer) Name() string

Name return process name for runner.Runner

func (*Peer) OnChangeAvailableRoles

func (r *Peer) OnChangeAvailableRoles() emitter.Emitter[cluster.Peer]

func (*Peer) OnChangeRole

func (r *Peer) OnChangeRole() emitter.Emitter[cluster.Replica]

func (*Peer) OnChangeStatus

func (r *Peer) OnChangeStatus() emitter.Emitter[cluster.Peer]

func (*Peer) Process

func (r *Peer) Process(ctx context.Context) error

Jump to

Keyboard shortcuts

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