tower

package
v0.18.2 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2023 License: MIT Imports: 35 Imported by: 0

Documentation

Index

Constants

View Source
const (
	TWorkerWait          = "worker_wait"
	TRequestPick         = "request_pick"
	TRequestSweep        = "request_sweep"
	TRequestHeartbeat    = "request_heartbeat"
	TWorkerStatus        = "worker_status"
	TWorkerStatusTimeout = "worker_status_timeout"
	TRequestTimeoutBase  = "request_timeout_base"
)

Variables

View Source
var ErrRequestExists = errors.New("request is already being processed")

Functions

func NewTestTowerRPC

func NewTestTowerRPC(t *testing.T, db *sql.DB) *towerRPC

Types

type MsgTranscodingTask

type MsgTranscodingTask struct {
	TaskID string `json:"tid"`
	URL    string `json:"url"`
	SDHash string `json:"sd_hash"`
}

type MsgWorkerError

type MsgWorkerError struct {
	Error string `json:"error"`
	Fatal bool   `json:"fatal"`
}

type MsgWorkerHandshake

type MsgWorkerHandshake struct {
	WorkerID  string `json:"worker_id"`
	Capacity  int    `json:"capacity"`
	Available int    `json:"available"`
	SessionID string `json:"session_id"`
}

type MsgWorkerProgress

type MsgWorkerProgress struct {
	Stage   RequestStage `json:"stage"`
	Percent float32      `json:"progress"`
}

type MsgWorkerRequest

type MsgWorkerRequest struct {
	WorkerID  string `json:"worker_id"`
	SessionID string `json:"session"`
}

type MsgWorkerSuccess

type MsgWorkerSuccess struct {
	RemoteStream *library.Stream `json:"remote_stream"`
}

type Payload

type Payload struct {
	URL string `json:"url"`
}

type Processor

type Processor interface {
	Process(t workerTask)
}

type RequestStage

type RequestStage string
const (
	StagePending RequestStage = "pending"

	StageAccepted     RequestStage = "accepted"
	StageDownloading  RequestStage = "downloading"
	StageEncoding     RequestStage = "encoding"
	StageUploading    RequestStage = "uploading"
	StageMetadataFill RequestStage = "metadata_fill"

	StageFailedRequeued   RequestStage = "failed_requeued"
	StageTimedOutRequeued RequestStage = "timed_out_requeued"

	StageFailed RequestStage = "failed"

	StageDone          RequestStage = "done"
	StageFailedFatally RequestStage = "failed_fatally" // This is a fatal error stage and stream cannot be re-added after this
	StageCompleted     RequestStage = "completed"      // All processing has been successfully completed and stream is in the database
)

type Server

type Server struct {
	*ServerConfig
	// contains filtered or unexported fields
}

func NewServer

func NewServer(config *ServerConfig) (*Server, error)

func (*Server) StartAll

func (s *Server) StartAll() error

func (*Server) StopAll

func (s *Server) StopAll()

type ServerConfig

type ServerConfig struct {
	HttpServerURL string
	// contains filtered or unexported fields
}

func DefaultServerConfig

func DefaultServerConfig() *ServerConfig

func (*ServerConfig) DB

func (c *ServerConfig) DB(db *sql.DB) *ServerConfig

func (*ServerConfig) DevMode

func (c *ServerConfig) DevMode() *ServerConfig

func (*ServerConfig) HttpServer

func (c *ServerConfig) HttpServer(bind, url string) *ServerConfig

func (*ServerConfig) Logger

func (c *ServerConfig) Logger(logger logging.KVLogger) *ServerConfig

func (*ServerConfig) ManagerToken added in v0.15.1

func (c *ServerConfig) ManagerToken(token string) *ServerConfig

func (*ServerConfig) RMQAddr

func (c *ServerConfig) RMQAddr(addr string) *ServerConfig

func (*ServerConfig) Timings

func (c *ServerConfig) Timings(t Timings) *ServerConfig

func (*ServerConfig) VideoManager

func (c *ServerConfig) VideoManager(manager *manager.VideoManager) *ServerConfig

func (*ServerConfig) WorkDir

func (c *ServerConfig) WorkDir(workDir string) *ServerConfig

type ServerLite

type ServerLite struct {
	Server
	// contains filtered or unexported fields
}

func NewServerLite

func NewServerLite(config *ServerConfig, processor Processor) (*ServerLite, error)

func NewTestTowerLite

func NewTestTowerLite(t *testing.T, storage *storage.S3Driver, mgr *manager.VideoManager) (*ServerLite, error)

func (*ServerLite) StartAll

func (s *ServerLite) StartAll() error

type Timings

type Timings map[string]time.Duration

type TowerTestHelper

type TowerTestHelper struct {
	TowerDB        *sql.DB
	TowerDBCleanup migrator.TestDBCleanup
}

func (*TowerTestHelper) SetupTowerDB

func (h *TowerTestHelper) SetupTowerDB() error

func (*TowerTestHelper) TearDownTowerDB

func (h *TowerTestHelper) TearDownTowerDB() error

type Worker

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

func NewWorker

func NewWorker(config *WorkerConfig) (*Worker, error)

NewWorker creates a new worker connecting to AMQP server.

func (*Worker) StartWorkers

func (c *Worker) StartWorkers() error

func (*Worker) Stop

func (c *Worker) Stop()

type WorkerConfig

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

func DefaultWorkerConfig

func DefaultWorkerConfig() *WorkerConfig

func (*WorkerConfig) HttpServerBind

func (c *WorkerConfig) HttpServerBind(bind string) *WorkerConfig

func (*WorkerConfig) Logger

func (c *WorkerConfig) Logger(logger logging.KVLogger) *WorkerConfig

func (*WorkerConfig) PoolSize

func (c *WorkerConfig) PoolSize(poolSize int) *WorkerConfig

func (*WorkerConfig) RMQAddr

func (c *WorkerConfig) RMQAddr(addr string) *WorkerConfig

func (*WorkerConfig) S3Driver

func (c *WorkerConfig) S3Driver(s3 *storage.S3Driver) *WorkerConfig

func (*WorkerConfig) Timings

func (c *WorkerConfig) Timings(t Timings) *WorkerConfig

func (*WorkerConfig) WorkDir

func (c *WorkerConfig) WorkDir(workDir string) *WorkerConfig

func (*WorkerConfig) WorkerID

func (c *WorkerConfig) WorkerID(id string) *WorkerConfig

type WorkerMessageType

type WorkerMessageType string

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

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