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

scheduling

package
v0.112.15 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNoOptimisticSlots = fmt.Errorf("no optimistic slots for scheduling")
View Source
var ErrTenantNotFound = fmt.Errorf("tenant not found in pool")

Sentinel errors returned from optimistic scheduling.

Functions

This section is empty.

Types

type AssignedItemWithTask added in v0.100.18

type AssignedItemWithTask struct {
	AssignedItem *v1.AssignedItem
	Task         *v1.V1TaskWithPayload
}

AssignedItemWithTask pairs an optimistic scheduling assignment with its task.

type ConcurrencyResults added in v0.100.18

type ConcurrencyResults struct {
	*v1.RunConcurrencyResult

	TenantId uuid.UUID
}

ConcurrencyResults is the result set a concurrency strategy emits after a run.

type Extensions added in v0.100.18

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

func (*Extensions) Add added in v0.100.18

func (e *Extensions) Add(ext SchedulerExtension)

func (*Extensions) Cleanup added in v0.100.18

func (e *Extensions) Cleanup() error

func (*Extensions) CleanupTenant added in v0.100.18

func (e *Extensions) CleanupTenant(tenantId uuid.UUID) error

func (*Extensions) PostAssign added in v0.100.18

func (e *Extensions) PostAssign(tenantId uuid.UUID, input *PostAssignInput)

func (*Extensions) ReportSnapshot added in v0.100.18

func (e *Extensions) ReportSnapshot(ctx context.Context, tenantId uuid.UUID, input *SnapshotInput)

func (*Extensions) SetTenants added in v0.100.18

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

type Pool added in v0.100.18

type Pool interface {
	GetResultsCh() chan *QueueResults
	GetConcurrencyResultsCh() chan *ConcurrencyResults

	// AddExtension registers a scheduler extension (metrics, autoscaling, ...)
	// against the pool.
	AddExtension(ext SchedulerExtension)

	SetTenants(tenants []*sqlcv1.Tenant)
	Replenish(ctx context.Context, tenantId uuid.UUID)

	NotifyQueues(ctx context.Context, tenantId uuid.UUID, queueNames []string)
	NotifyConcurrency(ctx context.Context, tenantId uuid.UUID, strategyIds []int64)
	NotifyNewWorker(ctx context.Context, tenantId uuid.UUID, workerId uuid.UUID)
	NotifyNewQueue(ctx context.Context, tenantId uuid.UUID, queueName string)
	NotifyNewConcurrencyStrategy(ctx context.Context, tenantId uuid.UUID, strategyId int64)

	RunOptimisticScheduling(ctx context.Context, tenantId uuid.UUID, opts []*v1.WorkflowNameTriggerOpts, localWorkerIds map[uuid.UUID]struct{}) (map[uuid.UUID][]*AssignedItemWithTask, []*v1.V1TaskWithPayload, []*v1.DAGWithData, []v1.IdempotencyCollision, error)
	RunOptimisticSchedulingFromEvents(ctx context.Context, tenantId uuid.UUID, opts []v1.EventTriggerOpts, localWorkerIds map[uuid.UUID]struct{}) (map[uuid.UUID][]*AssignedItemWithTask, *v1.TriggerFromEventsResult, error)
}

Pool is the engine-facing surface of a tenant scheduling pool.

type PostAssignInput added in v0.100.18

type PostAssignInput struct {
	HasUnassignedStepRuns bool
}

type QueueResults added in v0.100.18

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

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

QueueResults is the result set a queuer emits after flushing a batch of scheduling decisions to the database.

type SchedulerExtension added in v0.100.18

type SchedulerExtension interface {
	SetTenants(tenants []*sqlcv1.Tenant)
	ReportSnapshot(ctx context.Context, tenantId uuid.UUID, input *SnapshotInput)
	PostAssign(tenantId uuid.UUID, input *PostAssignInput)
	CleanupTenant(tenantId uuid.UUID) error
	Cleanup() error
}

type SlotCp added in v0.100.18

type SlotCp struct {
	WorkerId uuid.UUID
	Used     bool
}

type SlotUtilization added in v0.100.18

type SlotUtilization struct {
	UtilizedSlots    int
	NonUtilizedSlots int
}

type SnapshotInput added in v0.100.18

type SnapshotInput struct {
	Workers map[uuid.UUID]*WorkerCp

	// WorkerSlotUtilization is the per-worker slot utilization summed across slot types.
	WorkerSlotUtilization map[uuid.UUID]*SlotUtilization

	// WorkerSlotUtilizationByType breaks WorkerSlotUtilization down by slot type.
	WorkerSlotUtilizationByType map[uuid.UUID]map[string]*SlotUtilization
}

type WorkerCp added in v0.100.18

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

Directories

Path Synopsis
v1

Jump to

Keyboard shortcuts

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