agent

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Jun 25, 2024 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnabledCacheTTL         = 1 * time.Minute
	RoomAgentTopic          = "room"
	PublisherAgentTopic     = "publisher"
	DefaultHandlerNamespace = ""

	CheckEnabledTimeout = 5 * time.Second
)
View Source
const CurrentProtocol = 1

Variables

View Source
var (
	ErrWorkerClosed        = errors.New("worker closed")
	ErrWorkerNotAvailable  = errors.New("worker not available")
	ErrAvailabilityTimeout = errors.New("agent worker availability timeout")
)

Functions

This section is empty.

Types

type Client

type Client interface {
	// LaunchJob starts a room or participant job on an agent.
	// it will launch a job once for each worker in each namespace
	LaunchJob(ctx context.Context, desc *JobDescription)
	Stop() error
}

func NewAgentClient

func NewAgentClient(bus psrpc.MessageBus) (Client, error)

type Job

type Job struct {
	Logger logger.Logger
	// contains filtered or unexported fields
}

Represents a job that is being executed by a worker

func NewJob

func NewJob(id, namespace string, jobType livekit.JobType) *Job

func (*Job) ID

func (j *Job) ID() string

func (*Job) Namespace

func (j *Job) Namespace() string

func (*Job) Type

func (j *Job) Type() livekit.JobType

func (*Job) UpdateMetadata

func (j *Job) UpdateMetadata(metadata string)

func (*Job) UpdateStatus

func (j *Job) UpdateStatus(req *livekit.UpdateJobStatus)

func (*Job) WorkerLoad

func (j *Job) WorkerLoad() float32

type JobDescription

type JobDescription struct {
	JobType livekit.JobType
	Room    *livekit.Room
	// only set for participant jobs
	Participant *livekit.ParticipantInfo
}

type Worker

type Worker struct {
	Logger logger.Logger
	// contains filtered or unexported fields
}

func NewWorker

func NewWorker(
	protocolVersion WorkerProtocolVersion,
	apiKey string,
	apiSecret string,
	serverInfo *livekit.ServerInfo,
	conn *websocket.Conn,
	sigConn sigConn,
	logger logger.Logger,
) *Worker

func (*Worker) AssignJob

func (w *Worker) AssignJob(ctx context.Context, job *livekit.Job) error

func (*Worker) Close

func (w *Worker) Close()

func (*Worker) HandleMessage

func (w *Worker) HandleMessage(req *livekit.WorkerMessage)

func (*Worker) ID

func (w *Worker) ID() string

func (*Worker) IsClosed

func (w *Worker) IsClosed() bool

func (*Worker) JobType

func (w *Worker) JobType() livekit.JobType

func (*Worker) Load

func (w *Worker) Load() float32

func (*Worker) Namespace

func (w *Worker) Namespace() string

func (*Worker) OnWorkerRegistered

func (w *Worker) OnWorkerRegistered(f func(w *Worker))

func (*Worker) Registered

func (w *Worker) Registered() bool

func (*Worker) RunningJobs

func (w *Worker) RunningJobs() map[string]*Job

func (*Worker) Status

func (w *Worker) Status() livekit.WorkerStatus

func (*Worker) UpdateMetadata

func (w *Worker) UpdateMetadata(metadata string)

func (*Worker) UpdateStatus

func (w *Worker) UpdateStatus(status *livekit.UpdateWorkerStatus)

type WorkerProtocolVersion

type WorkerProtocolVersion int

Jump to

Keyboard shortcuts

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