Documentation
¶
Index ¶
- type Scaler
- func (s *Scaler) HandleDesiredRunnerCount(ctx context.Context, count int) (int, error)
- func (s *Scaler) HandleJobCompleted(ctx context.Context, jobInfo *scaleset.JobCompleted) error
- func (s *Scaler) HandleJobStarted(ctx context.Context, jobInfo *scaleset.JobStarted) error
- func (s *Scaler) RunnerCounts() (idle, busy int)
- func (s *Scaler) Shutdown(ctx context.Context)
- type ScalesetAPI
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Scaler ¶
type Scaler struct {
// contains filtered or unexported fields
}
Scaler implements listener.Scaler to handle scaling decisions and manage runner lifecycle via a pluggable RunnerBackend.
func NewScaler ¶
func NewScaler(scaleSetID, minRunners, maxRunners int, b backend.RunnerBackend, client ScalesetAPI, logger *slog.Logger) *Scaler
NewScaler creates a new Scaler instance.
func (*Scaler) HandleDesiredRunnerCount ¶
HandleDesiredRunnerCount scales runners up to match demand. Scale down is handled naturally via HandleJobCompleted.
func (*Scaler) HandleJobCompleted ¶
HandleJobCompleted removes the runner after job finishes.
func (*Scaler) HandleJobStarted ¶
HandleJobStarted marks a runner as busy when a job is assigned.
func (*Scaler) RunnerCounts ¶
RunnerCounts returns the number of idle and busy runners.
type ScalesetAPI ¶
type ScalesetAPI interface {
GenerateJitRunnerConfig(ctx context.Context, setting *scaleset.RunnerScaleSetJitRunnerSetting, scaleSetID int) (*scaleset.RunnerScaleSetJitRunnerConfig, error)
}
ScalesetAPI abstracts the scaleset client methods used by Scaler.
Click to show internal directories.
Click to hide internal directories.