agent

package
v1.7.1 Latest Latest
Warning

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

Go to latest
Published: Aug 11, 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")
	ErrDuplicateJobAssignment = errors.New("duplicate job assignment")
)

Functions

func GetAgentTopic added in v1.7.1

func GetAgentTopic(agentName, namespace string) string

func JobStatusIsEnded added in v1.7.1

func JobStatusIsEnded(s livekit.JobStatus) bool

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 *JobRequest) *serverutils.IncrementalDispatcher[*livekit.Job]
	TerminateJob(ctx context.Context, jobID string, reason rpc.JobTerminateReason) (*livekit.JobState, error)
	Stop() error
}

func NewAgentClient

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

type JobRequest added in v1.7.1

type JobRequest struct {
	DispatchId string
	JobType    livekit.JobType
	Room       *livekit.Room
	// only set for participant jobs
	Participant *livekit.ParticipantInfo
	Metadata    string
	AgentName   string
}

type SignalConn added in v1.7.1

type SignalConn interface {
	WriteServerMessage(msg *livekit.ServerMessage) (int, error)
	ReadWorkerMessage() (*livekit.WorkerMessage, int, error)
	Close() error
}

type UnimplementedWorkerHandler added in v1.7.1

type UnimplementedWorkerHandler struct{}

func (UnimplementedWorkerHandler) HandleWorkerDeregister added in v1.7.1

func (UnimplementedWorkerHandler) HandleWorkerDeregister(*Worker)

func (UnimplementedWorkerHandler) HandleWorkerJobStatus added in v1.7.1

func (UnimplementedWorkerHandler) HandleWorkerJobStatus(*Worker, *livekit.UpdateJobStatus)

func (UnimplementedWorkerHandler) HandleWorkerMigrateJob added in v1.7.1

func (UnimplementedWorkerHandler) HandleWorkerMigrateJob(*Worker, *livekit.MigrateJobRequest)

func (UnimplementedWorkerHandler) HandleWorkerRegister added in v1.7.1

func (UnimplementedWorkerHandler) HandleWorkerRegister(*Worker)

func (UnimplementedWorkerHandler) HandleWorkerSimulateJob added in v1.7.1

func (UnimplementedWorkerHandler) HandleWorkerSimulateJob(*Worker, *livekit.Job)

func (UnimplementedWorkerHandler) HandleWorkerStatus added in v1.7.1

type Worker

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

func NewWorker

func NewWorker(
	protocolVersion WorkerProtocolVersion,
	apiKey string,
	apiSecret string,
	serverInfo *livekit.ServerInfo,
	conn SignalConn,
	logger logger.Logger,
	handler WorkerHandler,
) *Worker

func (*Worker) AgentName added in v1.7.1

func (w *Worker) AgentName() string

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) Logger

func (w *Worker) Logger() logger.Logger

func (*Worker) Namespace

func (w *Worker) Namespace() string

func (*Worker) RunningJobs

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

func (*Worker) Status

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

func (*Worker) TerminateJob added in v1.7.1

func (w *Worker) TerminateJob(jobID string, reason rpc.JobTerminateReason) (*livekit.JobState, error)

func (*Worker) UpdateMetadata

func (w *Worker) UpdateMetadata(metadata string)

type WorkerHandler added in v1.7.1

type WorkerHandler interface {
	HandleWorkerRegister(w *Worker)
	HandleWorkerDeregister(w *Worker)
	HandleWorkerStatus(w *Worker, status *livekit.UpdateWorkerStatus)
	HandleWorkerJobStatus(w *Worker, status *livekit.UpdateJobStatus)
	HandleWorkerSimulateJob(w *Worker, job *livekit.Job)
	HandleWorkerMigrateJob(w *Worker, request *livekit.MigrateJobRequest)
}

type WorkerProtocolVersion

type WorkerProtocolVersion int

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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