Documentation ¶
Index ¶
- type Extensions
- type LeaseManager
- type PostScheduleInput
- type QueueResults
- type Queuer
- type Scheduler
- type SchedulerExtension
- type SchedulingPool
- func (p *SchedulingPool) GetResultsCh() chan *QueueResults
- func (p *SchedulingPool) Queue(ctx context.Context, tenantId string, queueName string)
- func (p *SchedulingPool) RefreshAll(ctx context.Context, tenantId string)
- func (p *SchedulingPool) Replenish(ctx context.Context, tenantId string)
- func (p *SchedulingPool) SetTenants(tenants []*dbsqlc.Tenant)
- type SlotCp
- type WorkerCp
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Extensions ¶ added in v0.53.6
type Extensions struct {
// contains filtered or unexported fields
}
func (*Extensions) Add ¶ added in v0.53.6
func (e *Extensions) Add(ext SchedulerExtension)
func (*Extensions) Cleanup ¶ added in v0.53.6
func (e *Extensions) Cleanup() error
func (*Extensions) PostSchedule ¶ added in v0.53.6
func (e *Extensions) PostSchedule(tenantId string, input *PostScheduleInput)
func (*Extensions) SetTenants ¶ added in v0.53.6
func (e *Extensions) SetTenants(tenants []*dbsqlc.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 PostScheduleInput ¶ added in v0.53.6
type QueueResults ¶
type QueueResults struct { TenantId pgtype.UUID Assigned []*repository.AssignedItem // A list of step run ids that were not assigned because they reached the scheduling // timeout SchedulingTimedOut []string }
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 ¶ added in v0.53.6
type SchedulerExtension interface { SetTenants(tenants []*dbsqlc.Tenant) PostSchedule(tenantId string, input *PostScheduleInput) 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 repository.SchedulerRepository, l *zerolog.Logger, singleQueueLimit int) (*SchedulingPool, func() error, error)
func (*SchedulingPool) GetResultsCh ¶
func (p *SchedulingPool) GetResultsCh() chan *QueueResults
func (*SchedulingPool) Queue ¶
func (p *SchedulingPool) Queue(ctx context.Context, tenantId string, queueName string)
func (*SchedulingPool) RefreshAll ¶
func (p *SchedulingPool) RefreshAll(ctx context.Context, tenantId string)
func (*SchedulingPool) Replenish ¶
func (p *SchedulingPool) Replenish(ctx context.Context, tenantId string)
func (*SchedulingPool) SetTenants ¶
func (p *SchedulingPool) SetTenants(tenants []*dbsqlc.Tenant)
Click to show internal directories.
Click to hide internal directories.