Files
hatchet/pkg/repository/scheduler_assignment.go
Gabe Ruttner 2fdc47a6af feat: multiple slot types (#2927)
* feat: adds support for multiple slot types, primarily motivated by durable slots

---------

Co-authored-by: mrkaye97 <mrkaye97@gmail.com>
2026-02-17 05:43:47 -08:00

55 lines
1.9 KiB
Go

package repository
import (
"context"
"github.com/google/uuid"
"github.com/hatchet-dev/hatchet/pkg/repository/sqlcv1"
"github.com/hatchet-dev/hatchet/pkg/telemetry"
)
type assignmentRepository struct {
*sharedRepository
}
func newAssignmentRepository(shared *sharedRepository) *assignmentRepository {
return &assignmentRepository{
sharedRepository: shared,
}
}
func (d *assignmentRepository) ListActionsForWorkers(ctx context.Context, tenantId uuid.UUID, workerIds []uuid.UUID) ([]*sqlcv1.ListActionsForWorkersRow, error) {
ctx, span := telemetry.NewSpan(ctx, "list-actions-for-workers")
defer span.End()
return d.queries.ListActionsForWorkers(ctx, d.pool, sqlcv1.ListActionsForWorkersParams{
Tenantid: tenantId,
Workerids: workerIds,
})
}
func (d *assignmentRepository) ListAvailableSlotsForWorkers(ctx context.Context, tenantId uuid.UUID, params sqlcv1.ListAvailableSlotsForWorkersParams) ([]*sqlcv1.ListAvailableSlotsForWorkersRow, error) {
ctx, span := telemetry.NewSpan(ctx, "list-available-slots-for-workers")
defer span.End()
return d.queries.ListAvailableSlotsForWorkers(ctx, d.pool, params)
}
func (d *assignmentRepository) ListAvailableSlotsForWorkersAndTypes(ctx context.Context, tenantId uuid.UUID, params sqlcv1.ListAvailableSlotsForWorkersAndTypesParams) ([]*sqlcv1.ListAvailableSlotsForWorkersAndTypesRow, error) {
ctx, span := telemetry.NewSpan(ctx, "list-available-slots-for-workers-and-types")
defer span.End()
return d.queries.ListAvailableSlotsForWorkersAndTypes(ctx, d.pool, params)
}
func (d *assignmentRepository) ListWorkerSlotConfigs(ctx context.Context, tenantId uuid.UUID, workerIds []uuid.UUID) ([]*sqlcv1.ListWorkerSlotConfigsRow, error) {
ctx, span := telemetry.NewSpan(ctx, "list-worker-slot-configs")
defer span.End()
return d.queries.ListWorkerSlotConfigs(ctx, d.pool, sqlcv1.ListWorkerSlotConfigsParams{
Tenantid: tenantId,
Workerids: workerIds,
})
}