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

coordinator

package
v2.10.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultLimit = 1000

DefaultLimit is the maximum number of tasks that a given taskd server can own

Variables

This section is empty.

Functions

This section is empty.

Types

type Coordinator

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

Coordinator is the intermediary between the scheduling/executing system and the rest of the task system

func NewCoordinator

func NewCoordinator(log *zap.Logger, scheduler scheduler.Scheduler, executor Executor, opts ...CoordinatorOption) *Coordinator

func (*Coordinator) RunCancelled

func (c *Coordinator) RunCancelled(ctx context.Context, runID platform.ID) error

RunCancelled speaks directly to the executor to cancel a task run

func (*Coordinator) RunForced

func (c *Coordinator) RunForced(ctx context.Context, task *taskmodel.Task, run *taskmodel.Run) error

RunForced speaks directly to the Executor to run a task immediately, or schedule the run if `scheduledFor` is set.

func (*Coordinator) TaskCreated

func (c *Coordinator) TaskCreated(ctx context.Context, task *taskmodel.Task) error

TaskCreated asks the Scheduler to schedule the newly created task

func (*Coordinator) TaskDeleted

func (c *Coordinator) TaskDeleted(ctx context.Context, id platform.ID) error

TaskDeleted asks the Scheduler to release the deleted task

func (*Coordinator) TaskUpdated

func (c *Coordinator) TaskUpdated(ctx context.Context, from, to *taskmodel.Task) error

TaskUpdated releases the task if it is being disabled, and schedules it otherwise

type CoordinatorOption

type CoordinatorOption func(*Coordinator)

func WithLimitOpt

func WithLimitOpt(i int) CoordinatorOption

type Executor

type Executor interface {
	ManualRun(ctx context.Context, id platform.ID, runID platform.ID) (executor.Promise, error)
	ScheduleManualRun(ctx context.Context, id platform.ID, runID platform.ID) error
	Cancel(ctx context.Context, runID platform.ID) error
}

Executor is an abstraction of the task executor with only the functions needed by the coordinator

type SchedulableTask

type SchedulableTask struct {
	*taskmodel.Task
	// contains filtered or unexported fields
}

SchedulableTask is a wrapper around the Task struct, giving it methods to make it compatible with the Scheduler

func NewSchedulableTask

func NewSchedulableTask(task *taskmodel.Task) (SchedulableTask, error)

NewSchedulableTask transforms an influxdb task to a schedulable task type

func (SchedulableTask) ID

func (t SchedulableTask) ID() scheduler.ID

func (SchedulableTask) LastScheduled

func (t SchedulableTask) LastScheduled() time.Time

LastScheduled parses the task's LatestCompleted value as a Time object

func (SchedulableTask) Offset

func (t SchedulableTask) Offset() time.Duration

Offset returns a time.Duration for the Task's offset property

func (SchedulableTask) Schedule

func (t SchedulableTask) Schedule() scheduler.Schedule

Schedule takes the time a Task is scheduled for and returns a Schedule object

Jump to

Keyboard shortcuts

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