Documentation
¶
Index ¶
- Constants
- Variables
- func DispatchWorkerSignal(req *livekit.WorkerMessage, h WorkerSignalHandler) error
- func GetAgentTopic(agentName, namespace string) string
- func JobStatusIsEnded(s livekit.JobStatus) bool
- type Client
- type JobRequest
- type SignalConn
- type UnimplementedWorkerSignalHandler
- func (UnimplementedWorkerSignalHandler) HandleAvailability(*livekit.AvailabilityResponse) error
- func (UnimplementedWorkerSignalHandler) HandleMigrateJob(*livekit.MigrateJobRequest) error
- func (UnimplementedWorkerSignalHandler) HandlePing(*livekit.WorkerPing) error
- func (UnimplementedWorkerSignalHandler) HandleRegister(*livekit.RegisterWorkerRequest) error
- func (UnimplementedWorkerSignalHandler) HandleSimulateJob(*livekit.SimulateJobRequest) error
- func (UnimplementedWorkerSignalHandler) HandleUpdateJob(*livekit.UpdateJobStatus) error
- func (UnimplementedWorkerSignalHandler) HandleUpdateWorker(*livekit.UpdateWorkerStatus) error
- type Worker
- func (w *Worker) AssignJob(ctx context.Context, job *livekit.Job) (*livekit.JobState, error)
- func (w *Worker) Close()
- func (w *Worker) GetJobState(jobID livekit.JobID) (*livekit.JobState, error)
- func (w *Worker) HandleAvailability(res *livekit.AvailabilityResponse) error
- func (w *Worker) HandleMigrateJob(req *livekit.MigrateJobRequest) error
- func (w *Worker) HandleSimulateJob(simulate *livekit.SimulateJobRequest) error
- func (w *Worker) HandleUpdateJob(update *livekit.UpdateJobStatus) error
- func (w *Worker) HandleUpdateWorker(update *livekit.UpdateWorkerStatus) error
- func (w *Worker) IsClosed() bool
- func (w *Worker) Load() float32
- func (w *Worker) Logger() logger.Logger
- func (w *Worker) RunningJobCount() int
- func (w *Worker) RunningJobs() map[livekit.JobID]*livekit.Job
- func (w *Worker) Status() livekit.WorkerStatus
- func (w *Worker) TerminateJob(jobID livekit.JobID, reason rpc.JobTerminateReason) (*livekit.JobState, error)
- func (w *Worker) UpdateJobStatus(update *livekit.UpdateJobStatus) (*livekit.JobState, error)
- func (w *Worker) UpdateMetadata(metadata string)
- type WorkerPingHandler
- type WorkerProtocolVersion
- type WorkerRegisterer
- type WorkerRegistration
- type WorkerSignalHandler
Constants ¶
View Source
const ( EnabledCacheTTL = 1 * time.Minute RoomAgentTopic = "room" PublisherAgentTopic = "publisher" ParticipantAgentTopic = "participant" DefaultHandlerNamespace = "" CheckEnabledTimeout = 5 * time.Second )
View Source
const ( RegisterTimeout = 10 * time.Second AssignJobTimeout = 10 * time.Second )
View Source
const CurrentProtocol = 1
Variables ¶
View Source
var ( ErrUnimplementedWrorkerSignal = errors.New("unimplemented worker signal") ErrUnknownWorkerSignal = errors.New("unknown worker signal") ErrUnknownJobType = errors.New("unknown job type") ErrJobNotFound = psrpc.NewErrorf(psrpc.NotFound, "no running job for given jobID") 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 DispatchWorkerSignal ¶ added in v1.8.0
func DispatchWorkerSignal(req *livekit.WorkerMessage, h WorkerSignalHandler) error
func GetAgentTopic ¶ added in v1.7.1
func JobStatusIsEnded ¶ added in v1.7.1
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 SignalConn ¶ added in v1.7.1
type UnimplementedWorkerSignalHandler ¶ added in v1.8.0
type UnimplementedWorkerSignalHandler struct{}
func (UnimplementedWorkerSignalHandler) HandleAvailability ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleAvailability(*livekit.AvailabilityResponse) error
func (UnimplementedWorkerSignalHandler) HandleMigrateJob ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleMigrateJob(*livekit.MigrateJobRequest) error
func (UnimplementedWorkerSignalHandler) HandlePing ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandlePing(*livekit.WorkerPing) error
func (UnimplementedWorkerSignalHandler) HandleRegister ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleRegister(*livekit.RegisterWorkerRequest) error
func (UnimplementedWorkerSignalHandler) HandleSimulateJob ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleSimulateJob(*livekit.SimulateJobRequest) error
func (UnimplementedWorkerSignalHandler) HandleUpdateJob ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleUpdateJob(*livekit.UpdateJobStatus) error
func (UnimplementedWorkerSignalHandler) HandleUpdateWorker ¶ added in v1.8.0
func (UnimplementedWorkerSignalHandler) HandleUpdateWorker(*livekit.UpdateWorkerStatus) error
type Worker ¶
type Worker struct {
WorkerPingHandler
WorkerRegistration
// contains filtered or unexported fields
}
func NewWorker ¶
func NewWorker( registration WorkerRegistration, apiKey string, apiSecret string, conn SignalConn, logger logger.Logger, ) *Worker
func (*Worker) GetJobState ¶ added in v1.8.0
func (*Worker) HandleAvailability ¶ added in v1.8.0
func (w *Worker) HandleAvailability(res *livekit.AvailabilityResponse) error
func (*Worker) HandleMigrateJob ¶ added in v1.8.0
func (w *Worker) HandleMigrateJob(req *livekit.MigrateJobRequest) error
func (*Worker) HandleSimulateJob ¶ added in v1.8.0
func (w *Worker) HandleSimulateJob(simulate *livekit.SimulateJobRequest) error
func (*Worker) HandleUpdateJob ¶ added in v1.8.0
func (w *Worker) HandleUpdateJob(update *livekit.UpdateJobStatus) error
func (*Worker) HandleUpdateWorker ¶ added in v1.8.0
func (w *Worker) HandleUpdateWorker(update *livekit.UpdateWorkerStatus) error
func (*Worker) RunningJobCount ¶ added in v1.8.0
func (*Worker) Status ¶
func (w *Worker) Status() livekit.WorkerStatus
func (*Worker) TerminateJob ¶ added in v1.7.1
func (*Worker) UpdateJobStatus ¶ added in v1.8.0
func (*Worker) UpdateMetadata ¶
type WorkerPingHandler ¶ added in v1.8.0
type WorkerPingHandler struct {
UnimplementedWorkerSignalHandler
// contains filtered or unexported fields
}
func (WorkerPingHandler) HandlePing ¶ added in v1.8.0
func (h WorkerPingHandler) HandlePing(ping *livekit.WorkerPing) error
type WorkerProtocolVersion ¶
type WorkerProtocolVersion int
type WorkerRegisterer ¶ added in v1.8.0
type WorkerRegisterer struct {
WorkerPingHandler
// contains filtered or unexported fields
}
func NewWorkerRegisterer ¶ added in v1.8.0
func NewWorkerRegisterer(conn SignalConn, serverInfo *livekit.ServerInfo, base WorkerRegistration) *WorkerRegisterer
func (*WorkerRegisterer) Deadline ¶ added in v1.8.0
func (h *WorkerRegisterer) Deadline() time.Time
func (*WorkerRegisterer) HandleRegister ¶ added in v1.8.0
func (h *WorkerRegisterer) HandleRegister(req *livekit.RegisterWorkerRequest) error
func (*WorkerRegisterer) Registered ¶ added in v1.8.0
func (h *WorkerRegisterer) Registered() bool
func (*WorkerRegisterer) Registration ¶ added in v1.8.0
func (h *WorkerRegisterer) Registration() WorkerRegistration
type WorkerRegistration ¶ added in v1.8.0
type WorkerRegistration struct {
Protocol WorkerProtocolVersion
ID string
Version string
AgentName string
Namespace string
JobType livekit.JobType
Permissions *livekit.ParticipantPermission
ClientIP string
}
func MakeWorkerRegistration ¶ added in v1.9.0
func MakeWorkerRegistration() WorkerRegistration
type WorkerSignalHandler ¶ added in v1.8.0
type WorkerSignalHandler interface {
HandleRegister(*livekit.RegisterWorkerRequest) error
HandleAvailability(*livekit.AvailabilityResponse) error
HandleUpdateJob(*livekit.UpdateJobStatus) error
HandleSimulateJob(*livekit.SimulateJobRequest) error
HandlePing(*livekit.WorkerPing) error
HandleUpdateWorker(*livekit.UpdateWorkerStatus) error
HandleMigrateJob(*livekit.MigrateJobRequest) error
}
Click to show internal directories.
Click to hide internal directories.