Help us shape the future of Go! Take the 2026 Go Developer Survey

v1

package
v0.74.9 Latest Latest
Warning

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

Go to latest
Published: Jan 8, 2026 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const MAX_RATE_LIMIT_UPDATE_FREQUENCY = 500 * time.Millisecond // avoid boundary conditions on 1 second polls

Variables

This section is empty.

Functions

This section is empty.

Types

type ConcurrencyManager

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

func (*ConcurrencyManager) Cleanup

func (c *ConcurrencyManager) Cleanup()

type ConcurrencyResults

type ConcurrencyResults struct {
	*v1.RunConcurrencyResult

	TenantId pgtype.UUID
}

type Extensions

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

func (*Extensions) Add

func (e *Extensions) Add(ext SchedulerExtension)

func (*Extensions) Cleanup

func (e *Extensions) Cleanup() error

func (*Extensions) PostAssign

func (e *Extensions) PostAssign(tenantId string, input *PostAssignInput)

func (*Extensions) ReportSnapshot

func (e *Extensions) ReportSnapshot(tenantId string, input *SnapshotInput)

func (*Extensions) SetTenants

func (e *Extensions) SetTenants(tenants []*sqlcv1.Tenant)

type LeaseManager

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

LeaseManager is responsible for leases on multiple queues and multiplexing queue results to callers. It is still tenant-scoped.

type PostAssignInput

type PostAssignInput struct {
	HasUnassignedStepRuns bool
}

type PrometheusExtension added in v0.72.2

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

func NewPrometheusExtension added in v0.72.2

func NewPrometheusExtension() *PrometheusExtension

func (*PrometheusExtension) Cleanup added in v0.72.2

func (p *PrometheusExtension) Cleanup() error

func (*PrometheusExtension) PostAssign added in v0.72.2

func (p *PrometheusExtension) PostAssign(tenantId string, input *PostAssignInput)

func (*PrometheusExtension) ReportSnapshot added in v0.72.2

func (p *PrometheusExtension) ReportSnapshot(tenantId string, input *SnapshotInput)

func (*PrometheusExtension) SetTenants added in v0.72.2

func (p *PrometheusExtension) SetTenants(tenants []*sqlcv1.Tenant)

type QueueResults

type QueueResults struct {
	TenantId pgtype.UUID
	Assigned []*v1.AssignedItem

	Unassigned         []*sqlcv1.V1QueueItem
	SchedulingTimedOut []*sqlcv1.V1QueueItem
	RateLimited        []*v1.RateLimitResult
}

type Queuer

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

func (*Queuer) Cleanup

func (q *Queuer) Cleanup()

type Scheduler

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

Scheduler is responsible for scheduling steps to workers as efficiently as possible. This is tenant-scoped, so each tenant will have its own scheduler.

type SchedulerExtension

type SchedulerExtension interface {
	SetTenants(tenants []*sqlcv1.Tenant)
	ReportSnapshot(tenantId string, input *SnapshotInput)
	PostAssign(tenantId string, input *PostAssignInput)
	Cleanup() error
}

type SchedulingPool

type SchedulingPool struct {
	Extensions *Extensions
	// contains filtered or unexported fields
}

SchedulingPool is responsible for managing a pool of tenantManagers.

func NewSchedulingPool

func NewSchedulingPool(repo v1.SchedulerRepository, l *zerolog.Logger, singleQueueLimit int, schedulerConcurrencyRateLimit int, schedulerConcurrencyPollingMinInterval time.Duration, schedulerConcurrencyPollingMaxInterval time.Duration) (*SchedulingPool, func() error, error)

func (*SchedulingPool) GetConcurrencyResultsCh

func (p *SchedulingPool) GetConcurrencyResultsCh() chan *ConcurrencyResults

func (*SchedulingPool) GetResultsCh

func (p *SchedulingPool) GetResultsCh() chan *QueueResults

func (*SchedulingPool) NotifyConcurrency

func (p *SchedulingPool) NotifyConcurrency(ctx context.Context, tenantId string, strategyIds []int64)

func (*SchedulingPool) NotifyQueues

func (p *SchedulingPool) NotifyQueues(ctx context.Context, tenantId string, queueNames []string)

func (*SchedulingPool) Replenish

func (p *SchedulingPool) Replenish(ctx context.Context, tenantId string)

func (*SchedulingPool) SetTenants

func (p *SchedulingPool) SetTenants(tenants []*sqlcv1.Tenant)

type SlotCp

type SlotCp struct {
	WorkerId string
	Used     bool
}

type SlotUtilization

type SlotUtilization struct {
	UtilizedSlots    int
	NonUtilizedSlots int
}

type SnapshotInput

type SnapshotInput struct {
	Workers               map[string]*WorkerCp
	WorkerSlotUtilization map[string]*SlotUtilization
}

type WorkerCp

type WorkerCp struct {
	WorkerId string
	MaxRuns  int
	Labels   []*sqlcv1.ListManyWorkerLabelsRow
	Name     string
}

type WorkerPromLabels added in v0.72.2

type WorkerPromLabels struct {
	ID   string
	Name string
}

Jump to

Keyboard shortcuts

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