dispatch

package
v0.30.2 Latest Latest
Warning

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

Go to latest
Published: Sep 18, 2025 License: PostgreSQL Imports: 12 Imported by: 0

Documentation

Index

Constants

View Source
const (
	PreData  = 0     // CREATE role, schemas, table.
	Data     = 10000 // one COPY per table, restart for sequences and identity.
	PostData = 20000 // CREATE indexes, constraints, etc.
)

Task number ranges for dump sections.

Allocate 10k numbers for each of dump sections. This allows to handle quite big schemas.

Variables

View Source
var Number int
View Source
var Trace bool

Log extra debug messages

This will flood logs. Enable only when debugging the scheduler.

Functions

func Compare added in v0.20.0

func Compare(a, b Task) int

Compare tasks

Heavier tasks wins.

returns:

-1: a precedes b
 0: a equals b
+1: b precedes a

func Next added in v0.24.0

func Next() int

func WorkerInit added in v0.21.0

func WorkerInit(f WorkerInitFunc) option

WorkerInit append an init function to a plan

dispatch execute init functions on context of each workers.

Types

type Header struct {
	Id       string
	Priority int
	Reqs     []string // Task dependencies.
}

Header holds task metadata

Implements Task.Describe().

func (Header) Describe

func (h Header) Describe() (string, int, []string)

func (Header) String

func (h Header) String() string

type Mock added in v0.26.0

type Mock map[string]Task

func (Mock) Add added in v0.26.0

func (p Mock) Add(t Task)

type Plan

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

Plan holds task for parallel execution

func New

func New(options ...option) *Plan

New instanciate an execution plan

func (*Plan) Add

func (p *Plan) Add(t Task)

Add registers a task

Panics if task is already registered or if a task requirement is missing.

func (*Plan) Checkpoint added in v0.30.0

func (p *Plan) Checkpoint(id string)

Checkpoint add a checkpoint to the plan

Checkpoint add a no-op task that require all the previously added tasks.

func (*Plan) Configure added in v0.21.0

func (p *Plan) Configure(options ...option)

Configure applies option to plan.

func (*Plan) Execute

func (p *Plan) Execute(ctx context.Context, jobs uint8) error

Execute runs tasks concurrently

Executing a plan twice panics.

Returns the aggregated tasks errors. Error list includes skipped tasks.

type Task

type Task interface {
	Describe() (string, int, []string)
	Run(context.Context) error
}

Task defines a schedulable unit

Use Header to implement Describe().

type TaskAdder added in v0.26.0

type TaskAdder interface {
	Add(Task)
}

type WorkerInitFunc added in v0.21.0

type WorkerInitFunc func(context.Context) (context.Context, error)

Jump to

Keyboard shortcuts

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